[INFO] cloning repository https://github.com/Tim-Looijen/rNN-from-scratch
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Tim-Looijen/rNN-from-scratch" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTim-Looijen%2FrNN-from-scratch", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTim-Looijen%2FrNN-from-scratch'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a349dfea0c85ba2376966e677f2adc9f4f09d0e3
[INFO] checking Tim-Looijen/rNN-from-scratch against e3607d549209cc9fdfe7e907123b4185210e2c2b for pr-158915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTim-Looijen%2FrNN-from-scratch" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Tim-Looijen/rNN-from-scratch
[INFO] finished tweaking git repo https://github.com/Tim-Looijen/rNN-from-scratch
[INFO] tweaked toml for git repo https://github.com/Tim-Looijen/rNN-from-scratch written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Tim-Looijen/rNN-from-scratch on toolchain e3607d549209cc9fdfe7e907123b4185210e2c2b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Tim-Looijen/rNN-from-scratch 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" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `MNIST_from_scratch` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-5-tc2/source/target/.../MNIST_from_scratch
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `mnist-from-scratch`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 - name = "MNIST_from_scratch"
[INFO] [stderr] 10 + name = "mnist-from-scratch"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `mnist-from-scratch`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:11:19
[INFO] [stderr]    |
[INFO] [stderr] 11 ~ version = "0.1.0"
[INFO] [stderr] 12 + [[bin]]
[INFO] [stderr] 13 + name = "mnist-from-scratch"
[INFO] [stderr] 14 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `MNIST_from_scratch` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91
[INFO] running `Command { std: "docker" "start" "416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91" "/opt/rustwide/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91" "/opt/rustwide/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `MNIST_from_scratch` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../MNIST_from_scratch
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `mnist-from-scratch`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 - name = "MNIST_from_scratch"
[INFO] [stderr] 10 + name = "mnist-from-scratch"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `mnist-from-scratch`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:11:19
[INFO] [stderr]    |
[INFO] [stderr] 11 ~ version = "0.1.0"
[INFO] [stderr] 12 + [[bin]]
[INFO] [stderr] 13 + name = "mnist-from-scratch"
[INFO] [stderr] 14 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `MNIST_from_scratch` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_isaac v0.3.0
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking ndarray-rand v0.15.0
[INFO] [stderr]     Checking MNIST_from_scratch v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `any::Any`
[INFO] [stdout]  --> src/deep_learning/activations.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::Any,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1`, `Array2`, `Ix1`, and `Ix2`
[INFO] [stdout]  --> src/deep_learning/activations.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ndarray::{Array, Array1, Array2, Dimension, Ix1, Ix2};
[INFO] [stdout]   |                      ^^^^^^  ^^^^^^             ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pointer` and `any::Any`
[INFO] [stdout]  --> src/deep_learning/layers.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::Any,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     fmt::{Debug, Display, Pointer},
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `::rand::SeedableRng`
[INFO] [stdout]  --> src/deep_learning/layers.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ::rand::SeedableRng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ix1`
[INFO] [stdout]  --> src/deep_learning/layers.rs:7:55
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ndarray::{Array, Array1, Array2, Axis, Dimension, Ix1, Ix2};
[INFO] [stdout]   |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_isaac::Isaac64Rng`
[INFO] [stdout]  --> src/deep_learning/layers.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand_isaac::Isaac64Rng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/deep_learning/layers.rs:11:41
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::deep_learning::activations::{self, Activation};
[INFO] [stdout]    |                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::Any`
[INFO] [stdout]  --> src/deep_learning/activations.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::Any,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1`, `Array2`, `Ix1`, and `Ix2`
[INFO] [stdout]  --> src/deep_learning/activations.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ndarray::{Array, Array1, Array2, Dimension, Ix1, Ix2};
[INFO] [stdout]   |                      ^^^^^^  ^^^^^^             ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pointer` and `any::Any`
[INFO] [stdout]  --> src/deep_learning/layers.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::Any,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     fmt::{Debug, Display, Pointer},
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `::rand::SeedableRng`
[INFO] [stdout]  --> src/deep_learning/layers.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ::rand::SeedableRng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ix1`
[INFO] [stdout]  --> src/deep_learning/layers.rs:7:55
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ndarray::{Array, Array1, Array2, Axis, Dimension, Ix1, Ix2};
[INFO] [stdout]   |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_isaac::Isaac64Rng`
[INFO] [stdout]  --> src/deep_learning/layers.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand_isaac::Isaac64Rng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/deep_learning/layers.rs:11:41
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::deep_learning::activations::{self, Activation};
[INFO] [stdout]    |                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Debug` and `any::Any`
[INFO] [stdout]  --> src/deep_learning/model.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::Any,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     fmt::{Debug, Display},
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArcArray`, `Dim`, `Ix1`, and `Ix`
[INFO] [stdout]  --> src/deep_learning/model.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ndarray::{ArcArray, Array, Array1, Array2, Dim, Dimension, Ix, Ix1, Ix2};
[INFO] [stdout]   |               ^^^^^^^^                         ^^^             ^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Linear`, `MSE`, `self`, and `self`
[INFO] [stdout]   --> src/deep_learning/model.rs:9:14
[INFO] [stdout]    |
[INFO] [stdout]  9 |     layers::{self, Layer, Linear},
[INFO] [stdout]    |              ^^^^         ^^^^^^
[INFO] [stdout] 10 |     loss_functions::{self, Criterion, MSE},
[INFO] [stdout]    |                      ^^^^             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/mnist.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Debug` and `any::Any`
[INFO] [stdout]  --> src/deep_learning/model.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::Any,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     fmt::{Debug, Display},
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArcArray`, `Dim`, `Ix1`, and `Ix`
[INFO] [stdout]  --> src/deep_learning/model.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ndarray::{ArcArray, Array, Array1, Array2, Dim, Dimension, Ix, Ix1, Ix2};
[INFO] [stdout]   |               ^^^^^^^^                         ^^^             ^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Linear`, `MSE`, `self`, and `self`
[INFO] [stdout]   --> src/deep_learning/model.rs:9:14
[INFO] [stdout]    |
[INFO] [stdout]  9 |     layers::{self, Layer, Linear},
[INFO] [stdout]    |              ^^^^         ^^^^^^
[INFO] [stdout] 10 |     loss_functions::{self, Criterion, MSE},
[INFO] [stdout]    |                      ^^^^             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/mnist.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |     activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 |     layers: Vec<Box<dyn Layer<D>>>,
[INFO] [stdout]    |                     ^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Criterion` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 |     criterion: Box<dyn Criterion<D>>,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ `Criterion` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/loss_functions.rs:5:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Criterion<D: Dimension>: Display {
[INFO] [stdout]    |           --------- this trait is not dyn compatible...
[INFO] [stdout]    = help: the following types implement `Criterion`:
[INFO] [stdout]              deep_learning::loss_functions::MSE
[INFO] [stdout]              deep_learning::loss_functions::CrossEntropyLoss
[INFO] [stdout]            consider defining an enum where each variant holds one of these types,
[INFO] [stdout]            implementing `Criterion` for this new enum and using it instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |     activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |         activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout] 44 -         activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout] 44 +         activation: Option<Box<Self>>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Criterion` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:24:55
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(parameters: Parameters, criterion: Box<dyn Criterion<D>>) -> Self {
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^ `Criterion` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/loss_functions.rs:5:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Criterion<D: Dimension>: Display {
[INFO] [stdout]    |           --------- this trait is not dyn compatible...
[INFO] [stdout]    = help: the following types implement `Criterion`:
[INFO] [stdout]              deep_learning::loss_functions::MSE
[INFO] [stdout]              deep_learning::loss_functions::CrossEntropyLoss
[INFO] [stdout]            consider defining an enum where each variant holds one of these types,
[INFO] [stdout]            implementing `Criterion` for this new enum and using it instead
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout] 24 -     pub fn new(parameters: Parameters, criterion: Box<dyn Criterion<D>>) -> Self {
[INFO] [stdout] 24 +     pub fn new(parameters: Parameters, criterion: Box<Self>) -> Self {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:32:59
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn create_architecture(&mut self, layers: Vec<Box<dyn Layer<D>>>) {
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout] 32 -     pub fn create_architecture(&mut self, layers: Vec<Box<dyn Layer<D>>>) {
[INFO] [stdout] 32 +     pub fn create_architecture(&mut self, layers: Vec<Box<Self>>) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 |     layers: Vec<Box<dyn Layer<D>>>,
[INFO] [stdout]    |                     ^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Criterion` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 |     criterion: Box<dyn Criterion<D>>,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ `Criterion` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/loss_functions.rs:5:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Criterion<D: Dimension>: Display {
[INFO] [stdout]    |           --------- this trait is not dyn compatible...
[INFO] [stdout]    = help: the following types implement `Criterion`:
[INFO] [stdout]              deep_learning::loss_functions::MSE
[INFO] [stdout]              deep_learning::loss_functions::CrossEntropyLoss
[INFO] [stdout]            consider defining an enum where each variant holds one of these types,
[INFO] [stdout]            implementing `Criterion` for this new enum and using it instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |         activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout] 44 -         activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout] 44 +         activation: Option<Box<Self>>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Criterion` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:24:55
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(parameters: Parameters, criterion: Box<dyn Criterion<D>>) -> Self {
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^ `Criterion` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/loss_functions.rs:5:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Criterion<D: Dimension>: Display {
[INFO] [stdout]    |           --------- this trait is not dyn compatible...
[INFO] [stdout]    = help: the following types implement `Criterion`:
[INFO] [stdout]              deep_learning::loss_functions::MSE
[INFO] [stdout]              deep_learning::loss_functions::CrossEntropyLoss
[INFO] [stdout]            consider defining an enum where each variant holds one of these types,
[INFO] [stdout]            implementing `Criterion` for this new enum and using it instead
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout] 24 -     pub fn new(parameters: Parameters, criterion: Box<dyn Criterion<D>>) -> Self {
[INFO] [stdout] 24 +     pub fn new(parameters: Parameters, criterion: Box<Self>) -> Self {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:32:59
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn create_architecture(&mut self, layers: Vec<Box<dyn Layer<D>>>) {
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout] 32 -     pub fn create_architecture(&mut self, layers: Vec<Box<dyn Layer<D>>>) {
[INFO] [stdout] 32 +     pub fn create_architecture(&mut self, layers: Vec<Box<Self>>) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `&Option<Box<(dyn Activation<D> + 'static)>>` doesn't implement `Debug`
[INFO] [stdout]   --> src/deep_learning/layers.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug)]
[INFO] [stdout]    |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 36 |     activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `&Option<Box<(dyn Activation<D> + 'static)>>`, the trait `Debug` is not implemented for `&Option<Box<(dyn Activation<D> + 'static)>>`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Debug` is implemented for `Option<T>`
[INFO] [stdout]   --> /rustc/e3607d549209cc9fdfe7e907123b4185210e2c2b/library/core/src/option.rs:592:15
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             activation,
[INFO] [stdout]    |             ^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 |         if self.activation.is_some() {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:91:28
[INFO] [stdout]    |
[INFO] [stdout] 91 |         if self.activation.is_some() {
[INFO] [stdout]    |                            ^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:46
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                                              ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `&Option<Box<(dyn Activation<D> + 'static)>>` doesn't implement `Debug`
[INFO] [stdout]   --> src/deep_learning/layers.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug)]
[INFO] [stdout]    |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 36 |     activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `&Option<Box<(dyn Activation<D> + 'static)>>`, the trait `Debug` is not implemented for `&Option<Box<(dyn Activation<D> + 'static)>>`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Debug` is implemented for `Option<T>`
[INFO] [stdout]   --> /rustc/e3607d549209cc9fdfe7e907123b4185210e2c2b/library/core/src/option.rs:592:15
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:55
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                                                       ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `dyn Activation<D>` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                        --    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `dyn Activation<D>` cannot be formatted with the default formatter
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::fmt::Display` is not implemented for `dyn Activation<D>`
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or `{:#?}` for pretty-print) instead
[INFO] [stdout] help: the trait `std::fmt::Display` is implemented for `Box<T, A>`
[INFO] [stdout]   --> /rustc/e3607d549209cc9fdfe7e907123b4185210e2c2b/library/alloc/src/boxed.rs:2316:0
[INFO] [stdout]    = note: required for `Box<dyn Activation<D>>` to implement `std::fmt::Display`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `&Box<dyn Activation<D>>` to implement `std::fmt::Display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             activation,
[INFO] [stdout]    |             ^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                        ^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 |         if self.activation.is_some() {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:91:28
[INFO] [stdout]    |
[INFO] [stdout] 91 |         if self.activation.is_some() {
[INFO] [stdout]    |                            ^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 108 |             if self.activation.is_some() {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |             if self.activation.is_some() {
[INFO] [stdout]     |                                ^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:46
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                                              ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:110:24
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 return self.activation.as_mut().unwrap().forward(&(forward));
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:110:40
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 return self.activation.as_mut().unwrap().forward(&(forward));
[INFO] [stdout]     |                                        ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:55
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                                                       ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `dyn Activation<D>` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                        --    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `dyn Activation<D>` cannot be formatted with the default formatter
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::fmt::Display` is not implemented for `dyn Activation<D>`
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or `{:#?}` for pretty-print) instead
[INFO] [stdout] help: the trait `std::fmt::Display` is implemented for `Box<T, A>`
[INFO] [stdout]   --> /rustc/e3607d549209cc9fdfe7e907123b4185210e2c2b/library/alloc/src/boxed.rs:2316:0
[INFO] [stdout]    = note: required for `Box<dyn Activation<D>>` to implement `std::fmt::Display`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `&Box<dyn Activation<D>>` to implement `std::fmt::Display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:110:24
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 return self.activation.as_mut().unwrap().forward(&(forward));
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:110:49
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 return self.activation.as_mut().unwrap().forward(&(forward));
[INFO] [stdout]     |                                                 ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/layers.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |             write!(f, "{})", self.activation.as_ref().unwrap())
[INFO] [stdout]    |                        ^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 118 |         if self.activation.is_some() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 108 |             if self.activation.is_some() {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:118:28
[INFO] [stdout]     |
[INFO] [stdout] 118 |         if self.activation.is_some() {
[INFO] [stdout]     |                            ^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:120:20
[INFO] [stdout]     |
[INFO] [stdout] 120 |             return self.activation.as_mut().unwrap().forward(&local_activation);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:120:36
[INFO] [stdout]     |
[INFO] [stdout] 120 |             return self.activation.as_mut().unwrap().forward(&local_activation);
[INFO] [stdout]     |                                    ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |             if self.activation.is_some() {
[INFO] [stdout]     |                                ^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:110:24
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 return self.activation.as_mut().unwrap().forward(&(forward));
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:120:20
[INFO] [stdout]     |
[INFO] [stdout] 120 |             return self.activation.as_mut().unwrap().forward(&local_activation);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:120:45
[INFO] [stdout]     |
[INFO] [stdout] 120 |             return self.activation.as_mut().unwrap().forward(&local_activation);
[INFO] [stdout]     |                                             ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:110:40
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 return self.activation.as_mut().unwrap().forward(&(forward));
[INFO] [stdout]     |                                        ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:110:24
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 return self.activation.as_mut().unwrap().forward(&(forward));
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if self.activation.is_some() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:110:49
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 return self.activation.as_mut().unwrap().forward(&(forward));
[INFO] [stdout]     |                                                 ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:128:28
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if self.activation.is_some() {
[INFO] [stdout]     |                            ^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |               gradiant = self
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 130 | |                 .activation
[INFO] [stdout] 131 | |                 .as_ref()
[INFO] [stdout]     | |_________________________^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 118 |         if self.activation.is_some() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 .as_ref()
[INFO] [stdout]     |                  ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:118:28
[INFO] [stdout]     |
[INFO] [stdout] 118 |         if self.activation.is_some() {
[INFO] [stdout]     |                            ^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |               gradiant = self
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 130 | |                 .activation
[INFO] [stdout] 131 | |                 .as_ref()
[INFO] [stdout] 132 | |                 .unwrap()
[INFO] [stdout]     | |_________________________^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:120:20
[INFO] [stdout]     |
[INFO] [stdout] 120 |             return self.activation.as_mut().unwrap().forward(&local_activation);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:132:18
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 .unwrap()
[INFO] [stdout]     |                  ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:120:36
[INFO] [stdout]     |
[INFO] [stdout] 120 |             return self.activation.as_mut().unwrap().forward(&local_activation);
[INFO] [stdout]     |                                    ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:120:20
[INFO] [stdout]     |
[INFO] [stdout] 120 |             return self.activation.as_mut().unwrap().forward(&local_activation);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:120:45
[INFO] [stdout]     |
[INFO] [stdout] 120 |             return self.activation.as_mut().unwrap().forward(&local_activation);
[INFO] [stdout]     |                                             ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if self.activation.is_some() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:128:28
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if self.activation.is_some() {
[INFO] [stdout]     |                            ^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |               gradiant = self
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 130 | |                 .activation
[INFO] [stdout] 131 | |                 .as_ref()
[INFO] [stdout]     | |_________________________^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 .as_ref()
[INFO] [stdout]     |                  ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |               gradiant = self
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 130 | |                 .activation
[INFO] [stdout] 131 | |                 .as_ref()
[INFO] [stdout] 132 | |                 .unwrap()
[INFO] [stdout]     | |_________________________^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]    --> src/deep_learning/layers.rs:132:18
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 .unwrap()
[INFO] [stdout]     |                  ^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]  53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout]  55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |             layers: vec![],
[INFO] [stdout]    |                     ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Criterion` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             criterion,
[INFO] [stdout]    |             ^^^^^^^^^ `Criterion` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/loss_functions.rs:5:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Criterion<D: Dimension>: Display {
[INFO] [stdout]    |           --------- this trait is not dyn compatible...
[INFO] [stdout]    = help: the following types implement `Criterion`:
[INFO] [stdout]              deep_learning::loss_functions::MSE
[INFO] [stdout]              deep_learning::loss_functions::CrossEntropyLoss
[INFO] [stdout]            consider defining an enum where each variant holds one of these types,
[INFO] [stdout]            implementing `Criterion` for this new enum and using it instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |             layers: vec![],
[INFO] [stdout]    |                     ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |             layers: vec![],
[INFO] [stdout]    |                     ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 |         for layer in layers {
[INFO] [stdout]    |                      ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 |         for layer in layers {
[INFO] [stdout]    |                      ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             self.layers.push(layer);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:34:25
[INFO] [stdout]    |
[INFO] [stdout] 34 |             self.layers.push(layer);
[INFO] [stdout]    |                         ^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |             layers: vec![],
[INFO] [stdout]    |                     ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Criterion` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             criterion,
[INFO] [stdout]    |             ^^^^^^^^^ `Criterion` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/loss_functions.rs:5:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Criterion<D: Dimension>: Display {
[INFO] [stdout]    |           --------- this trait is not dyn compatible...
[INFO] [stdout]    = help: the following types implement `Criterion`:
[INFO] [stdout]              deep_learning::loss_functions::MSE
[INFO] [stdout]              deep_learning::loss_functions::CrossEntropyLoss
[INFO] [stdout]            consider defining an enum where each variant holds one of these types,
[INFO] [stdout]            implementing `Criterion` for this new enum and using it instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |             self.layers.push(layer);
[INFO] [stdout]    |                              ^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for layer in &mut self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |             layers: vec![],
[INFO] [stdout]    |                     ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for layer in &mut self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |             layers: vec![],
[INFO] [stdout]    |                     ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 |         for layer in layers {
[INFO] [stdout]    |                      ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 |         for layer in layers {
[INFO] [stdout]    |                      ^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:55:22
[INFO] [stdout]    |
[INFO] [stdout] 55 |         for layer in &mut self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:55:22
[INFO] [stdout]    |
[INFO] [stdout] 55 |         for layer in &mut self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             self.layers.push(layer);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:34:25
[INFO] [stdout]    |
[INFO] [stdout] 34 |             self.layers.push(layer);
[INFO] [stdout]    |                         ^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |             self.layers.push(layer);
[INFO] [stdout]    |                              ^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for layer in &mut self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                      ^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for layer in &mut self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:34
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                                  ^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:55:22
[INFO] [stdout]    |
[INFO] [stdout] 55 |         for layer in &mut self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:45
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                                             ^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:55:22
[INFO] [stdout]    |
[INFO] [stdout] 55 |         for layer in &mut self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 |         for layer in &self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 |         for layer in &self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                      ^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `dyn Layer<D>` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/deep_learning/model.rs:94:31
[INFO] [stdout]    |
[INFO] [stdout] 94 |             writeln!(f, "{}", layer)?;
[INFO] [stdout]    |                          --   ^^^^^ `dyn Layer<D>` cannot be formatted with the default formatter
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::fmt::Display` is not implemented for `dyn Layer<D>`
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or `{:#?}` for pretty-print) instead
[INFO] [stdout] help: the trait `std::fmt::Display` is implemented for `Box<T, A>`
[INFO] [stdout]   --> /rustc/e3607d549209cc9fdfe7e907123b4185210e2c2b/library/alloc/src/boxed.rs:2316:0
[INFO] [stdout]    = note: required for `Box<dyn Layer<D>>` to implement `std::fmt::Display`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `&Box<dyn Layer<D>>` to implement `std::fmt::Display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:34
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                                  ^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:94:26
[INFO] [stdout]    |
[INFO] [stdout] 94 |             writeln!(f, "{}", layer)?;
[INFO] [stdout]    |                          ^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `dyn Layer<D>: HelperMethodsLayer` is not satisfied
[INFO] [stdout]   --> src/deep_learning/model.rs:95:38
[INFO] [stdout]    |
[INFO] [stdout] 95 |             parameter_count += layer.parameter_count();
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^ the trait `HelperMethodsLayer` is not implemented for `dyn Layer<D>`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `HelperMethodsLayer` is implemented for `Linear<D>`
[INFO] [stdout]   --> src/deep_learning/layers.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl<D: Dimension> HelperMethodsLayer for Linear<D> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |             parameter_count += layer.parameter_count();
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:45
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                                             ^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:95:38
[INFO] [stdout]    |
[INFO] [stdout] 95 |             parameter_count += layer.parameter_count();
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         for layer in self.layers.iter_mut().rev() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 |         for layer in &self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 |         for layer in &self.layers {
[INFO] [stdout]    |                      ^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Criterion` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:21:51
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut model = Model::<Ix2>::new(parameters, CrossEntropyLoss::new());
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^ `Criterion` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/loss_functions.rs:5:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Criterion<D: Dimension>: Display {
[INFO] [stdout]    |           --------- this trait is not dyn compatible...
[INFO] [stdout]    = help: the following types implement `Criterion`:
[INFO] [stdout]              deep_learning::loss_functions::MSE
[INFO] [stdout]              deep_learning::loss_functions::CrossEntropyLoss
[INFO] [stdout]            consider defining an enum where each variant holds one of these types,
[INFO] [stdout]            implementing `Criterion` for this new enum and using it instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `dyn Layer<D>` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/deep_learning/model.rs:94:31
[INFO] [stdout]    |
[INFO] [stdout] 94 |             writeln!(f, "{}", layer)?;
[INFO] [stdout]    |                          --   ^^^^^ `dyn Layer<D>` cannot be formatted with the default formatter
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::fmt::Display` is not implemented for `dyn Layer<D>`
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or `{:#?}` for pretty-print) instead
[INFO] [stdout] help: the trait `std::fmt::Display` is implemented for `Box<T, A>`
[INFO] [stdout]   --> /rustc/e3607d549209cc9fdfe7e907123b4185210e2c2b/library/alloc/src/boxed.rs:2316:0
[INFO] [stdout]    = note: required for `Box<dyn Layer<D>>` to implement `std::fmt::Display`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `&Box<dyn Layer<D>>` to implement `std::fmt::Display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:94:26
[INFO] [stdout]    |
[INFO] [stdout] 94 |             writeln!(f, "{}", layer)?;
[INFO] [stdout]    |                          ^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `dyn Layer<D>: HelperMethodsLayer` is not satisfied
[INFO] [stdout]   --> src/deep_learning/model.rs:95:38
[INFO] [stdout]    |
[INFO] [stdout] 95 |             parameter_count += layer.parameter_count();
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^ the trait `HelperMethodsLayer` is not implemented for `dyn Layer<D>`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `HelperMethodsLayer` is implemented for `Linear<D>`
[INFO] [stdout]   --> src/deep_learning/layers.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl<D: Dimension> HelperMethodsLayer for Linear<D> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |             parameter_count += layer.parameter_count();
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/deep_learning/model.rs:95:38
[INFO] [stdout]    |
[INFO] [stdout] 95 |             parameter_count += layer.parameter_count();
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Criterion` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:21:51
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut model = Model::<Ix2>::new(parameters, CrossEntropyLoss::new());
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^ `Criterion` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/loss_functions.rs:5:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Criterion<D: Dimension>: Display {
[INFO] [stdout]    |           --------- this trait is not dyn compatible...
[INFO] [stdout]    = help: the following types implement `Criterion`:
[INFO] [stdout]              deep_learning::loss_functions::MSE
[INFO] [stdout]              deep_learning::loss_functions::CrossEntropyLoss
[INFO] [stdout]            consider defining an enum where each variant holds one of these types,
[INFO] [stdout]            implementing `Criterion` for this new enum and using it instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:21:51
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut model = Model::<Ix2>::new(parameters, CrossEntropyLoss::new());
[INFO] [stdout]    |                     -----------------             ^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Criterion<Dim<[usize; 2]>>>`, found `Box<CrossEntropyLoss>`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Box<(dyn Criterion<Dim<[usize; 2]>> + 'static)>`
[INFO] [stdout]               found struct `Box<CrossEntropyLoss>`
[INFO] [stdout]    = help: `CrossEntropyLoss` implements `Criterion` so you could box the found value and coerce it to the trait object `Box<dyn Criterion>`, you will have to change the expected type as well
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/deep_learning/model.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(parameters: Parameters, criterion: Box<dyn Criterion<D>>) -> Self {
[INFO] [stdout]    |            ^^^                         --------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 |     model.create_architecture(vec![
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |       model.create_architecture(vec![
[INFO] [stdout]    |  _______________________________^
[INFO] [stdout] 23 | |         Linear::new(784, 16, true, Some(ReLU::new())),
[INFO] [stdout] 24 | |         Linear::new(16, 16, true, Some(ReLU::new())),
[INFO] [stdout] 25 | |         Linear::new(16, 10, true, None),
[INFO] [stdout] 26 | |     ]);
[INFO] [stdout]    | |_____^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Linear::new(784, 16, true, Some(ReLU::new())),
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Linear::new(784, 16, true, Some(ReLU::new())),
[INFO] [stdout]    |         -----------                ^^^^^^^^^^^^^^^^^ expected `Option<Box<dyn Activation<_>>>`, found `Option<Box<ReLU<_>>>`
[INFO] [stdout]    |         |
[INFO] [stdout]    |         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Option<Box<(dyn Activation<_> + 'static)>>`
[INFO] [stdout]               found enum `Option<Box<ReLU<_>>>`
[INFO] [stdout]    = help: `ReLU<_>` implements `Activation` so you could box the found value and coerce it to the trait object `Box<dyn Activation>`, you will have to change the expected type as well
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/deep_learning/layers.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |         activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |         ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:21:51
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut model = Model::<Ix2>::new(parameters, CrossEntropyLoss::new());
[INFO] [stdout]    |                     -----------------             ^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Criterion<Dim<[usize; 2]>>>`, found `Box<CrossEntropyLoss>`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Box<(dyn Criterion<Dim<[usize; 2]>> + 'static)>`
[INFO] [stdout]               found struct `Box<CrossEntropyLoss>`
[INFO] [stdout]    = help: `CrossEntropyLoss` implements `Criterion` so you could box the found value and coerce it to the trait object `Box<dyn Criterion>`, you will have to change the expected type as well
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/deep_learning/model.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(parameters: Parameters, criterion: Box<dyn Criterion<D>>) -> Self {
[INFO] [stdout]    |            ^^^                         --------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:24:35
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Linear::new(16, 16, true, Some(ReLU::new())),
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 |     model.create_architecture(vec![
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |       model.create_architecture(vec![
[INFO] [stdout]    |  _______________________________^
[INFO] [stdout] 23 | |         Linear::new(784, 16, true, Some(ReLU::new())),
[INFO] [stdout] 24 | |         Linear::new(16, 16, true, Some(ReLU::new())),
[INFO] [stdout] 25 | |         Linear::new(16, 10, true, None),
[INFO] [stdout] 26 | |     ]);
[INFO] [stdout]    | |_____^ `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:24:35
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Linear::new(16, 16, true, Some(ReLU::new())),
[INFO] [stdout]    |         -----------               ^^^^^^^^^^^^^^^^^ expected `Option<Box<dyn Activation<_>>>`, found `Option<Box<ReLU<_>>>`
[INFO] [stdout]    |         |
[INFO] [stdout]    |         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Option<Box<(dyn Activation<_> + 'static)>>`
[INFO] [stdout]               found enum `Option<Box<ReLU<_>>>`
[INFO] [stdout]    = help: `ReLU<_>` implements `Activation` so you could box the found value and coerce it to the trait object `Box<dyn Activation>`, you will have to change the expected type as well
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/deep_learning/layers.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |         activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |         ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Linear::new(784, 16, true, Some(ReLU::new())),
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:25:35
[INFO] [stdout]    |
[INFO] [stdout] 25 |         Linear::new(16, 10, true, None),
[INFO] [stdout]    |                                   ^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Linear::new(784, 16, true, Some(ReLU::new())),
[INFO] [stdout]    |         -----------                ^^^^^^^^^^^^^^^^^ expected `Option<Box<dyn Activation<_>>>`, found `Option<Box<ReLU<_>>>`
[INFO] [stdout]    |         |
[INFO] [stdout]    |         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Option<Box<(dyn Activation<_> + 'static)>>`
[INFO] [stdout]               found enum `Option<Box<ReLU<_>>>`
[INFO] [stdout]    = help: `ReLU<_>` implements `Activation` so you could box the found value and coerce it to the trait object `Box<dyn Activation>`, you will have to change the expected type as well
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/deep_learning/layers.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |         activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |         ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:24:35
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Linear::new(16, 16, true, Some(ReLU::new())),
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:24:35
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Linear::new(16, 16, true, Some(ReLU::new())),
[INFO] [stdout]    |         -----------               ^^^^^^^^^^^^^^^^^ expected `Option<Box<dyn Activation<_>>>`, found `Option<Box<ReLU<_>>>`
[INFO] [stdout]    |         |
[INFO] [stdout]    |         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Option<Box<(dyn Activation<_> + 'static)>>`
[INFO] [stdout]               found enum `Option<Box<ReLU<_>>>`
[INFO] [stdout]    = help: `ReLU<_>` implements `Activation` so you could box the found value and coerce it to the trait object `Box<dyn Activation>`, you will have to change the expected type as well
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/deep_learning/layers.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |         activation: Option<Box<dyn Activation<D>>>,
[INFO] [stdout]    |         ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Activation` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:25:35
[INFO] [stdout]    |
[INFO] [stdout] 25 |         Linear::new(16, 10, true, None),
[INFO] [stdout]    |                                   ^^^^ `Activation` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/activations.rs:8:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Activation<D: Dimension>: Debug + Display {
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |       model.create_architecture(vec![
[INFO] [stdout]    |  ___________-------------------_^
[INFO] [stdout]    | |           |
[INFO] [stdout]    | |           arguments to this method are incorrect
[INFO] [stdout] 23 | |         Linear::new(784, 16, true, Some(ReLU::new())),
[INFO] [stdout] 24 | |         Linear::new(16, 16, true, Some(ReLU::new())),
[INFO] [stdout] 25 | |         Linear::new(16, 10, true, None),
[INFO] [stdout] 26 | |     ]);
[INFO] [stdout]    | |_____^ expected `Vec<Box<dyn Layer<Dim<[usize; 2]>>>>`, found `Vec<Box<Linear<_>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<Box<(dyn Layer<Dim<[usize; 2]>> + 'static)>>`
[INFO] [stdout]               found struct `Vec<Box<Linear<_>>>`
[INFO] [stdout]    = help: `Linear<_>` implements `Layer` so you could box the found value and coerce it to the trait object `Box<dyn Layer>`, you will have to change the expected type as well
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/deep_learning/model.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn create_architecture(&mut self, layers: Vec<Box<dyn Layer<D>>>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^            ------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |       model.create_architecture(vec![
[INFO] [stdout]    |  ___________-------------------_^
[INFO] [stdout]    | |           |
[INFO] [stdout]    | |           arguments to this method are incorrect
[INFO] [stdout] 23 | |         Linear::new(784, 16, true, Some(ReLU::new())),
[INFO] [stdout] 24 | |         Linear::new(16, 16, true, Some(ReLU::new())),
[INFO] [stdout] 25 | |         Linear::new(16, 10, true, None),
[INFO] [stdout] 26 | |     ]);
[INFO] [stdout]    | |_____^ expected `Vec<Box<dyn Layer<Dim<[usize; 2]>>>>`, found `Vec<Box<Linear<_>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<Box<(dyn Layer<Dim<[usize; 2]>> + 'static)>>`
[INFO] [stdout]               found struct `Vec<Box<Linear<_>>>`
[INFO] [stdout]    = help: `Linear<_>` implements `Layer` so you could box the found value and coerce it to the trait object `Box<dyn Layer>`, you will have to change the expected type as well
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/deep_learning/model.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn create_architecture(&mut self, layers: Vec<Box<dyn Layer<D>>>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^            ------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Layer` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.16.1/src/dimension/dimension_trait.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     + DimMax<Ix0, Output = Self>
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 52 |     + DimMax<Self, Output = Self>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout] 53 |     + DimMax<IxDyn, Output = IxDyn>
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                     ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 54 |     + DimMax<<Self as Dimension>::Smaller, Output = Self>
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                            ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D`
[INFO] [stdout] 55 |     + DimMax<<Self as Dimension>::Larger, Output = <Self as Dimension>::Larger>
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<<D as ndarray::Dimension>::Smaller>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<ndarray::IxDynImpl>>>::Output == ndarray::Dim<ndarray::IxDynImpl>` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<D>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |                                           ...because it has conflicting associated item bounds for `Output` in supertraits: `<D as ndarray::DimMax<ndarray::Dim<[usize; 0]>>>::Output == D` and `<D as ndarray::DimMax<<D as ndarray::Dimension>::Larger>>::Output == <D as ndarray::Dimension>::Larger`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/deep_learning/layers.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Layer<D: Dimension>: Display + Debug + HelperMethodsLayer {
[INFO] [stdout]    |           ----- this trait is not dyn compatible...
[INFO] [stdout]    = help: only type `deep_learning::layers::Linear<ndarray::Dim<[usize; 2]>>` implements `Layer`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upstream_gradiant`
[INFO] [stdout]   --> src/deep_learning/activations.rs:36:26
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn derivative(&self, upstream_gradiant: &Array<f32, D>) -> Array<f32, D> {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_upstream_gradiant`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upstream_gradiant`
[INFO] [stdout]   --> src/deep_learning/activations.rs:36:26
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn derivative(&self, upstream_gradiant: &Array<f32, D>) -> Array<f32, D> {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_upstream_gradiant`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/mnist.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let x = reader.read_u32::<BigEndian>()?;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/mnist.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let y = reader.read_u32::<BigEndian>()?;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/mnist.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let x = reader.read_u32::<BigEndian>()?;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/mnist.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let y = reader.read_u32::<BigEndian>()?;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0038, E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0038`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0038, E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0038`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `MNIST_from_scratch` (bin "MNIST_from_scratch") due to 71 previous errors; 14 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `MNIST_from_scratch` (bin "MNIST_from_scratch" test) due to 71 previous errors; 14 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91", kill_on_drop: false }`
[INFO] [stdout] 416878bd6e3caeeae178c197b587dba5ccae0f4f8bfa1d97fab6137d05254c91
