[INFO] fetching crate decision_transformer_dfdx 0.2.0...
[INFO] testing decision_transformer_dfdx-0.2.0 against 1.90.0 for beta-1.91-3
[INFO] extracting crate decision_transformer_dfdx 0.2.0 into /workspace/builds/worker-5-tc1/source
[INFO] removed /workspace/builds/worker-5-tc1/source/rust-toolchain
[INFO] started tweaking crates.io crate decision_transformer_dfdx 0.2.0
[INFO] finished tweaking crates.io crate decision_transformer_dfdx 0.2.0
[INFO] tweaked toml for crates.io crate decision_transformer_dfdx 0.2.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate decision_transformer_dfdx 0.2.0 on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 53 packages to latest compatible versions
[INFO] [stderr]       Adding rand v0.8.5 (available: v0.9.2)
[INFO] [stderr]       Adding rand_distr v0.4.3 (available: v0.5.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded gemm-common v0.15.5
[INFO] [stderr]   Downloaded dyn-stack v0.9.1
[INFO] [stderr]   Downloaded gemm-c64 v0.15.5
[INFO] [stderr]   Downloaded gemm-f32 v0.15.5
[INFO] [stderr]   Downloaded gemm-f64 v0.15.5
[INFO] [stderr]   Downloaded gemm v0.15.5
[INFO] [stderr]   Downloaded gemm-c32 v0.15.5
[INFO] [stderr]   Downloaded gemm-f16 v0.15.5
[INFO] [stderr]   Downloaded dfdx v0.13.0
[INFO] [stderr]   Downloaded cudarc v0.9.15
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270
[INFO] running `Command { std: "docker" "start" "-a" "fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270", kill_on_drop: false }`
[INFO] [stdout] fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853
[INFO] running `Command { std: "docker" "start" "-a" "e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853", kill_on_drop: false }`
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling reborrow v0.5.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling bytemuck v1.23.2
[INFO] [stderr]    Compiling raw-cpuid v10.7.0
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling dfdx v0.13.0
[INFO] [stderr]    Compiling dyn-stack v0.9.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling memmap2 v0.5.10
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling safetensors v0.3.3
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling gemm-common v0.15.5
[INFO] [stderr]    Compiling gemm-f32 v0.15.5
[INFO] [stderr]    Compiling gemm-c64 v0.15.5
[INFO] [stderr]    Compiling gemm-f64 v0.15.5
[INFO] [stderr]    Compiling gemm-c32 v0.15.5
[INFO] [stderr]    Compiling gemm-f16 v0.15.5
[INFO] [stderr]    Compiling gemm v0.15.5
[INFO] [stderr]    Compiling decision_transformer_dfdx v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(generic_const_exprs)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 | /     fn try_forward_mut(
[INFO] [stdout] 314 | |         &mut self,
[INFO] [stdout] 315 | |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout] 316 | |     ) -> Result<Self::Output, Self::Error> {
[INFO] [stdout]     | |                                          ^
[INFO] [stdout]     | |                                          |
[INFO] [stdout]     | |__________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                            ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<S>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 | /     fn try_forward_mut(
[INFO] [stdout] 314 | |         &mut self,
[INFO] [stdout] 315 | |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout] 316 | |     ) -> Result<Self::Output, Self::Error> {
[INFO] [stdout]     | |                                          ^
[INFO] [stdout]     | |                                          |
[INFO] [stdout]     | |__________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                            ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 | /     fn try_forward_mut(
[INFO] [stdout] 314 | |         &mut self,
[INFO] [stdout] 315 | |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout] 316 | |     ) -> Result<Self::Output, Self::Error> {
[INFO] [stdout]     | |                                          ^
[INFO] [stdout]     | |                                          |
[INFO] [stdout]     | |__________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                            ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<A>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 | /     fn try_forward_mut(
[INFO] [stdout] 314 | |         &mut self,
[INFO] [stdout] 315 | |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout] 316 | |     ) -> Result<Self::Output, Self::Error> {
[INFO] [stdout]     | |                                          ^
[INFO] [stdout]     | |                                          |
[INFO] [stdout]     | |__________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                            ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 | /     fn try_forward_mut(
[INFO] [stdout] 314 | |         &mut self,
[INFO] [stdout] 315 | |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout] 316 | |     ) -> Result<Self::Output, Self::Error> {
[INFO] [stdout]     | |                                          ^
[INFO] [stdout]     | |                                          |
[INFO] [stdout]     | |__________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                            ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:295:7
[INFO] [stdout]     |
[INFO] [stdout] 295 |     > ModuleMut<BatchedInput<B, S, A, E, D, Config, T>>
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<S>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:295:7
[INFO] [stdout]     |
[INFO] [stdout] 295 |     > ModuleMut<BatchedInput<B, S, A, E, D, Config, T>>
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:295:7
[INFO] [stdout]     |
[INFO] [stdout] 295 |     > ModuleMut<BatchedInput<B, S, A, E, D, Config, T>>
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<A>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:295:7
[INFO] [stdout]     |
[INFO] [stdout] 295 |     > ModuleMut<BatchedInput<B, S, A, E, D, Config, T>>
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:295:7
[INFO] [stdout]     |
[INFO] [stdout] 295 |     > ModuleMut<BatchedInput<B, S, A, E, D, Config, T>>
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/train.rs:36:75
[INFO] [stdout]     |
[INFO] [stdout]  36 | ...nsor<usize>+ TensorToArray<(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>), E>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                 ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub trait TensorToArray<S: Shape, E>: Storage<E> {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/train.rs:36:75
[INFO] [stdout]     |
[INFO] [stdout]  36 | ...nsor<usize>+ TensorToArray<(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>), E>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                 ...so that the type `dfdx::shapes::Const<{Config::HIDDEN_SIZE}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub trait TensorToArray<S: Shape, E>: Storage<E> {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/train.rs:36:75
[INFO] [stdout]     |
[INFO] [stdout]  36 | ...nsor<usize>+ TensorToArray<(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>), E>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                 ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub trait TensorToArray<S: Shape, E>: Storage<E> {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> (Vec<Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>>, Vec<usize>)
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> (Vec<Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>>, Vec<usize>)
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> (Vec<Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>>, Vec<usize>)
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> (Vec<Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>>, Vec<usize>)
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> (Vec<Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>>, Vec<usize>)
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> (Vec<Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>>, Vec<usize>)
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> (Vec<Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>>, Vec<usize>)
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>,)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:194:95
[INFO] [stdout]     |
[INFO] [stdout] 194 | ...> + CopySlice<usize> + TensorToArray<(Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                           ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub trait TensorToArray<S: Shape, E>: Storage<E> {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 196 |         Game: DTState<E, D, Config> + HumanEvaluatable<E, D, Config> + 'static,
[INFO] [stdout]     |                                                                      +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:194:95
[INFO] [stdout]     |
[INFO] [stdout] 194 | ...> + CopySlice<usize> + TensorToArray<(Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                           ...so that the type `dfdx::shapes::Const<{Config::HIDDEN_SIZE}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub trait TensorToArray<S: Shape, E>: Storage<E> {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 196 |         Game: DTState<E, D, Config> + HumanEvaluatable<E, D, Config> + 'static,
[INFO] [stdout]     |                                                                      +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:194:95
[INFO] [stdout]     |
[INFO] [stdout] 194 | ...> + CopySlice<usize> + TensorToArray<(Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                           ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub trait TensorToArray<S: Shape, E>: Storage<E> {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 196 |         Game: DTState<E, D, Config> + HumanEvaluatable<E, D, Config> + 'static,
[INFO] [stdout]     |                                                                      +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:310:6
[INFO] [stdout]     |
[INFO] [stdout] 310 |   ) -> (
[INFO] [stdout]     |  ______^
[INFO] [stdout] 311 | |     BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 312 | |     [Game::Action; B],
[INFO] [stdout] 313 | |     //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 314 | | )
[INFO] [stdout]     | | ^
[INFO] [stdout]     | | |
[INFO] [stdout]     | |_the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |   ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:8:6
[INFO] [stdout]    |
[INFO] [stdout]  8 | ) -> Tensor<(Const<{ Config::SEQ_LEN }>,), usize, D> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `(dfdx::shapes::Const<{ Config::SEQ_LEN }>,)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub fn stack_usize<E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:8:6
[INFO] [stdout]    |
[INFO] [stdout]  8 | ) -> Tensor<(Const<{ Config::SEQ_LEN }>,), usize, D> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `dfdx::shapes::Const<{ Config::SEQ_LEN }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub fn stack_usize<E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 |     tensors: [Tensor<(Const<{ Config::SEQ_LEN }>,), usize, D>; B],
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |              ...so that the type `(dfdx::shapes::Const<{ Config::SEQ_LEN }>,)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Config: DTModelConfig + 'static,
[INFO] [stdout]    |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 |     tensors: [Tensor<(Const<{ Config::SEQ_LEN }>,), usize, D>; B],
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |              ...so that the type `dfdx::shapes::Const<{ Config::SEQ_LEN }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Config: DTModelConfig + 'static,
[INFO] [stdout]    |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | ) -> Tensor<(Const<B>, Const<{ Config::SEQ_LEN }>), usize, D>{
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{ Config::SEQ_LEN }>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Config: DTModelConfig + 'static,
[INFO] [stdout]    |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | ) -> Tensor<(Const<B>, Const<{ Config::SEQ_LEN }>), usize, D>{
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |      |
[INFO] [stdout]    |      the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |      ...so that the type `dfdx::shapes::Const<{ Config::SEQ_LEN }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Config: DTModelConfig + 'static,
[INFO] [stdout]    |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |     inp: &Input<S, A, E, D, Config>,
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |          ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<S>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |     inp: &Input<S, A, E, D, Config>,
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |          ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |     inp: &Input<S, A, E, D, Config>,
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |          ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<A>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |     inp: &Input<S, A, E, D, Config>,
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |          ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |     inp: &Input<S, A, E, D, Config>,
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |          ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>,)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 |     seq: &Tensor<(Const<{ Config::SEQ_LEN }>, Const<M>), E, D>,
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |          ...so that the type `(dfdx::shapes::Const<{ Config::SEQ_LEN }>, dfdx::shapes::Const<M>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn print_seq<E: Dtype, D: Device<E>, Config: DTModelConfig + 'static, const M: usize>(
[INFO] [stdout]    |                                                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 |     seq: &Tensor<(Const<{ Config::SEQ_LEN }>, Const<M>), E, D>,
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |          ...so that the type `dfdx::shapes::Const<{ Config::SEQ_LEN }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn print_seq<E: Dtype, D: Device<E>, Config: DTModelConfig + 'static, const M: usize>(
[INFO] [stdout]    |                                                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:315:16
[INFO] [stdout]     |
[INFO] [stdout] 315 |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<S>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:315:16
[INFO] [stdout]     |
[INFO] [stdout] 315 |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:315:16
[INFO] [stdout]     |
[INFO] [stdout] 315 |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<A>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:315:16
[INFO] [stdout]     |
[INFO] [stdout] 315 |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:315:16
[INFO] [stdout]     |
[INFO] [stdout] 315 |         input: BatchedInput<B, S, A, E, D, Config, T>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         batch: BatchedInput<B, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |                ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]   --> src/state_trait.rs:46:28
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn to_tensor(&self) -> Tensor<(Const<{ Self::STATE_SIZE }>,), E, D>;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]    |                            ...so that the type `(dfdx::shapes::Const<{ Self::STATE_SIZE }>,)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 17 | >: Clone where Self: 'static
[INFO] [stdout]    |          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]   --> src/state_trait.rs:46:28
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn to_tensor(&self) -> Tensor<(Const<{ Self::STATE_SIZE }>,), E, D>;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]    |                            ...so that the type `dfdx::shapes::Const<{ Self::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 17 | >: Clone where Self: 'static
[INFO] [stdout]    |          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]   --> src/state_trait.rs:59:51
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn action_to_tensor(action: &Self::Action) -> Tensor<(Const<{ Self::ACTION_SIZE }>,), E, D> {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]    |                                                   ...so that the type `(dfdx::shapes::Const<{ Self::ACTION_SIZE }>,)` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 17 | >: Clone where Self: 'static
[INFO] [stdout]    |          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]   --> src/state_trait.rs:59:51
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn action_to_tensor(action: &Self::Action) -> Tensor<(Const<{ Self::ACTION_SIZE }>,), E, D> {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]    |                                                   ...so that the type `dfdx::shapes::Const<{ Self::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]    |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 17 | >: Clone where Self: 'static
[INFO] [stdout]    |          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Self::STATE_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  94 | >: DTState<E, D, Config> where Self: 'static
[INFO] [stdout]     |                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Self::STATE_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_batch<const B: usize, R: rand::Rng + ?Sized + 'static>(
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `dfdx::shapes::Const<{ Self::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  94 | >: DTState<E, D, Config> where Self: 'static
[INFO] [stdout]     |                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `dfdx::shapes::Const<{ Self::STATE_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_batch<const B: usize, R: rand::Rng + ?Sized + 'static>(
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  94 | >: DTState<E, D, Config> where Self: 'static
[INFO] [stdout]     |                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_batch<const B: usize, R: rand::Rng + ?Sized + 'static>(
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Self::ACTION_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  94 | >: DTState<E, D, Config> where Self: 'static
[INFO] [stdout]     |                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Self::ACTION_SIZE }>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_batch<const B: usize, R: rand::Rng + ?Sized + 'static>(
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `dfdx::shapes::Const<{ Self::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  94 | >: DTState<E, D, Config> where Self: 'static
[INFO] [stdout]     |                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `dfdx::shapes::Const<{ Self::ACTION_SIZE }>` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_batch<const B: usize, R: rand::Rng + ?Sized + 'static>(
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  94 | >: DTState<E, D, Config> where Self: 'static
[INFO] [stdout]     |                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_batch<const B: usize, R: rand::Rng + ?Sized + 'static>(
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  94 | >: DTState<E, D, Config> where Self: 'static
[INFO] [stdout]     |                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:109:10
[INFO] [stdout]     |
[INFO] [stdout] 109 |       ) -> (
[INFO] [stdout]     |  __________^
[INFO] [stdout] 110 | |         BatchedInput<B, { Self::STATE_SIZE }, { Self::ACTION_SIZE }, E, D, Config, NoneTape>,
[INFO] [stdout] 111 | |         [Self::Action; B],
[INFO] [stdout] 112 | |         //Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>
[INFO] [stdout] 113 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |       ...so that the type `(dfdx::shapes::Const<B>, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds...
[INFO] [stdout]     |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22
[INFO] [stdout]     |
[INFO] [stdout]  32 | pub struct Tensor<S: Shape, E, D: Storage<E>, T = NoneTape> {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_batch<const B: usize, R: rand::Rng + ?Sized + 'static>(
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:321:22
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let states = self.state_head.forward_mut(states);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:322:23
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let actions = self.action_head.forward_mut(actions.retaped::<T>());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                       ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:322:52
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let actions = self.action_head.forward_mut(actions.retaped::<T>());
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                    ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:322:60
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let actions = self.action_head.forward_mut(actions.retaped::<T>());
[INFO] [stdout]     |                                                            ^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                            ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:323:23
[INFO] [stdout]     |
[INFO] [stdout] 323 |         let rewards = self.return_head.forward_mut(rewards.retaped::<T>());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                       ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:323:52
[INFO] [stdout]     |
[INFO] [stdout] 323 |         let rewards = self.return_head.forward_mut(rewards.retaped::<T>());
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                    ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:323:60
[INFO] [stdout]     |
[INFO] [stdout] 323 |         let rewards = self.return_head.forward_mut(rewards.retaped::<T>());
[INFO] [stdout]     |                                                            ^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                            ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:325:21
[INFO] [stdout]     |
[INFO] [stdout] 325 |         let times = self.time_embeddings.forward_mut(timesteps);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                     ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:327:23
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let rewards = rewards + times.clone();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                       ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:327:33
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let rewards = rewards + times.clone();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                 ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:328:23
[INFO] [stdout]     |
[INFO] [stdout] 328 |         let actions = actions + times.clone();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                       ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:328:33
[INFO] [stdout]     |
[INFO] [stdout] 328 |         let actions = actions + times.clone();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                 ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:329:22
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let states = states + times;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:331:23
[INFO] [stdout]     |
[INFO] [stdout] 331 |           let stacked = [rewards, states, actions]
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 332 | |             .stack()
[INFO] [stdout]     | |                    ^
[INFO] [stdout]     | |                    |
[INFO] [stdout]     | |____________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:331:23
[INFO] [stdout]     |
[INFO] [stdout] 331 |           let stacked = [rewards, states, actions]
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 332 | |             .stack()
[INFO] [stdout] 333 | |             .permute::<_, Axes4<1, 2, 0, 3>>()
[INFO] [stdout]     | |                                              ^
[INFO] [stdout]     | |                                              |
[INFO] [stdout]     | |______________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:331:23
[INFO] [stdout]     |
[INFO] [stdout] 331 |           let stacked = [rewards, states, actions]
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 332 | |             .stack()
[INFO] [stdout] 333 | |             .permute::<_, Axes4<1, 2, 0, 3>>()
[INFO] [stdout] 334 | |             .reshape::<(Const<B>, Const<{ 3 * Config::SEQ_LEN }>, Const<{Config::HIDDEN_SIZE}>)>();
[INFO] [stdout]     | |                                                                                                  ^
[INFO] [stdout]     | |                                                                                                  |
[INFO] [stdout]     | |__________________________________________________________________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                                                                    ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 |             .permute::<_, Axes4<1, 2, 0, 3>>()
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:334:14
[INFO] [stdout]     |
[INFO] [stdout] 334 |             .reshape::<(Const<B>, Const<{ 3 * Config::SEQ_LEN }>, Const<{Config::HIDDEN_SIZE}>)>();
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:337:20
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let input: Tensor<(Const<B>, Const<{ 3 * Config::SEQ_LEN }>, Const<{Config::HIDDEN_SIZE}>), E, D, T> =
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                    ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |             dev.build_module::<LN<Config>, E>().forward_mut(stacked);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:342:19
[INFO] [stdout]     |
[INFO] [stdout] 342 |           let out = out
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 343 | |             .reshape::<(
[INFO] [stdout] 344 | |                 Const<B>,
[INFO] [stdout] 345 | |                 Const<{3 * Config::HIDDEN_SIZE * Config::SEQ_LEN}>)>();
[INFO] [stdout]     | |                                                                      ^
[INFO] [stdout]     | |                                                                      |
[INFO] [stdout]     | |______________________________________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                                        ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:343:14
[INFO] [stdout]     |
[INFO] [stdout] 343 |             .reshape::<(
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/dt_model.rs:347:23
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let actions = self.predict_action.forward_mut(out);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                       ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 291 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:59:33
[INFO] [stdout]    |
[INFO] [stdout] 59 |           let mut actions_in_seq: [Tensor<(Const<{ Game::ACTION_SIZE }>,), E, D>;
[INFO] [stdout]    |  _________________________________^
[INFO] [stdout] 60 | |             Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    | |                            ^
[INFO] [stdout]    | |                            |
[INFO] [stdout]    | |____________________________the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                              ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:60:32
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:60:56
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                                        ^^^^^^^^^^^
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                                        ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:60:56
[INFO] [stdout]    |
[INFO] [stdout] 34 |         action_history: &Vec<Game::Action>,
[INFO] [stdout]    |                         ------------------ the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 60 |             Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                                        ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 31 ~     pub fn make_move<'a>(
[INFO] [stdout] 32 |         &self,
[INFO] [stdout] 33 |         state_history: &Vec<Game>,
[INFO] [stdout] 34 ~         action_history: &'a Vec<Game::Action>,
[INFO] [stdout] 35 |         temperature: E,
[INFO] [stdout] 36 |         desired_total_reward: f32,
[INFO] [stdout] 37 ~     ) -> Game::Action where Game: 'a
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:61:32
[INFO] [stdout]    |
[INFO] [stdout] 61 |           let mut states_in_seq: [Tensor<(Const<{ Game::STATE_SIZE }>,), E, D>;
[INFO] [stdout]    |  ________________________________^
[INFO] [stdout] 62 | |             Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    | |                            ^
[INFO] [stdout]    | |                            |
[INFO] [stdout]    | |____________________________the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                              ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:62:32
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:62:56
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                                        ^^^^^^^^^^^
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                                        ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:62:56
[INFO] [stdout]    |
[INFO] [stdout] 34 |         action_history: &Vec<Game::Action>,
[INFO] [stdout]    |                         ------------------ the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 62 |             Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                                        ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 31 ~     pub fn make_move<'a>(
[INFO] [stdout] 32 |         &self,
[INFO] [stdout] 33 |         state_history: &Vec<Game>,
[INFO] [stdout] 34 ~         action_history: &'a Vec<Game::Action>,
[INFO] [stdout] 35 |         temperature: E,
[INFO] [stdout] 36 |         desired_total_reward: f32,
[INFO] [stdout] 37 ~     ) -> Game::Action where Game: 'a
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:78:41
[INFO] [stdout]    |
[INFO] [stdout] 78 |             actions_in_seq[seq_index] = Game::action_to_tensor(action);
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:82:47
[INFO] [stdout]    |
[INFO] [stdout] 82 |         actions_in_seq[Config::SEQ_LEN - 1] = dev.zeros() + mask;
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                               ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:82:47
[INFO] [stdout]    |
[INFO] [stdout] 82 |         actions_in_seq[Config::SEQ_LEN - 1] = dev.zeros() + mask;
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                               ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/predict.rs:94:40
[INFO] [stdout]    |
[INFO] [stdout] 94 |             states_in_seq[seq_index] = state.to_tensor();
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                        |
[INFO] [stdout]    |                                        the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                        ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 |           let input: Input<
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 124 | |             { Game::STATE_SIZE },
[INFO] [stdout] 125 | |             { Game::ACTION_SIZE },
[INFO] [stdout] 126 | |             E,
[INFO] [stdout] ...   |
[INFO] [stdout] 129 | |             NoneTape,
[INFO] [stdout] 130 | |         > = (
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |           ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |             states_in_seq.stack(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |             actions_in_seq.stack(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |             rtg_in_seq.stack(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 |           let out: Tensor<
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 139 | |             (
[INFO] [stdout] 140 | |                 //Const<{ Config::SEQ_LEN }>,
[INFO] [stdout] 141 | |                 Const<{ Game::ACTION_SIZE }>,
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |             D,
[INFO] [stdout] 145 | |         > = self.0.forward(input);
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |           ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         > = self.0.forward(input);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:150:22
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let logits = out / temperature;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:151:20
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let probs: Tensor<(Const<{ Game::ACTION_SIZE }>,), E, D> = logits.softmax();
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                    ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:151:68
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let probs: Tensor<(Const<{ Game::ACTION_SIZE }>,), E, D> = logits.softmax();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                                                                    ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/predict.rs:155:26
[INFO] [stdout]     |
[INFO] [stdout] 155 |         for (i, prob) in probs.as_vec().iter().enumerate() {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                          ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  15 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 |           let v = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 194 | |             .w_v
[INFO] [stdout] 195 | |             .forward_mut(input.clone().put_tape(tape))
[INFO] [stdout] 196 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |                 Const<{ HIDDEN / NUM_HEADS }>,
[INFO] [stdout] 201 | |             )>()?
[INFO] [stdout]     | |                ^
[INFO] [stdout]     | |                |
[INFO] [stdout]     | |________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                  ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 |           let v = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 194 | |             .w_v
[INFO] [stdout] 195 | |             .forward_mut(input.clone().put_tape(tape))
[INFO] [stdout] 196 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |                 Const<{ HIDDEN / NUM_HEADS }>,
[INFO] [stdout] 201 | |             )>()?
[INFO] [stdout]     | |                 ^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |_________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                   ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 |           let v = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 194 | |             .w_v
[INFO] [stdout] 195 | |             .forward_mut(input.clone().put_tape(tape))
[INFO] [stdout] 196 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 201 | |             )>()?
[INFO] [stdout] 202 | |             .try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     | |                                                  ^
[INFO] [stdout]     | |                                                  |
[INFO] [stdout]     | |__________________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                    ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 |           let v = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 194 | |             .w_v
[INFO] [stdout] 195 | |             .forward_mut(input.clone().put_tape(tape))
[INFO] [stdout] 196 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 201 | |             )>()?
[INFO] [stdout] 202 | |             .try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     | |                                                   ^
[INFO] [stdout]     | |                                                   |
[INFO] [stdout]     | |___________________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                     ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:196:14
[INFO] [stdout]     |
[INFO] [stdout] 196 |             .try_reshape::<(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:202:14
[INFO] [stdout]     |
[INFO] [stdout] 202 |             .try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |           let k = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 205 | |             .w_k
[INFO] [stdout] 206 | |             .forward(input.clone().retaped::<T>())
[INFO] [stdout] 207 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |                 Const<{ HIDDEN / NUM_HEADS }>,
[INFO] [stdout] 212 | |             )>()?
[INFO] [stdout]     | |                ^
[INFO] [stdout]     | |                |
[INFO] [stdout]     | |________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                  ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |           let k = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 205 | |             .w_k
[INFO] [stdout] 206 | |             .forward(input.clone().retaped::<T>())
[INFO] [stdout] 207 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |                 Const<{ HIDDEN / NUM_HEADS }>,
[INFO] [stdout] 212 | |             )>()?
[INFO] [stdout]     | |                 ^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |_________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                   ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |           let k = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 205 | |             .w_k
[INFO] [stdout] 206 | |             .forward(input.clone().retaped::<T>())
[INFO] [stdout] 207 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 212 | |             )>()?
[INFO] [stdout] 213 | |             .try_permute::<_, Axes4<0, 2, 3, 1>>()?;
[INFO] [stdout]     | |                                                  ^
[INFO] [stdout]     | |                                                  |
[INFO] [stdout]     | |__________________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                    ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |           let k = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 205 | |             .w_k
[INFO] [stdout] 206 | |             .forward(input.clone().retaped::<T>())
[INFO] [stdout] 207 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 212 | |             )>()?
[INFO] [stdout] 213 | |             .try_permute::<_, Axes4<0, 2, 3, 1>>()?;
[INFO] [stdout]     | |                                                   ^
[INFO] [stdout]     | |                                                   |
[INFO] [stdout]     | |___________________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                     ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:207:14
[INFO] [stdout]     |
[INFO] [stdout] 207 |             .try_reshape::<(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:213:14
[INFO] [stdout]     |
[INFO] [stdout] 213 |             .try_permute::<_, Axes4<0, 2, 3, 1>>()?;
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:215:17
[INFO] [stdout]     |
[INFO] [stdout] 215 |           let q = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 216 | |             .w_q
[INFO] [stdout] 217 | |             .forward(input.retaped::<T>())
[INFO] [stdout] 218 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 222 | |                 Const<{ HIDDEN / NUM_HEADS }>,
[INFO] [stdout] 223 | |             )>()?
[INFO] [stdout]     | |                ^
[INFO] [stdout]     | |                |
[INFO] [stdout]     | |________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                  ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:215:17
[INFO] [stdout]     |
[INFO] [stdout] 215 |           let q = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 216 | |             .w_q
[INFO] [stdout] 217 | |             .forward(input.retaped::<T>())
[INFO] [stdout] 218 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 222 | |                 Const<{ HIDDEN / NUM_HEADS }>,
[INFO] [stdout] 223 | |             )>()?
[INFO] [stdout]     | |                 ^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |_________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                   ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:215:17
[INFO] [stdout]     |
[INFO] [stdout] 215 |           let q = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 216 | |             .w_q
[INFO] [stdout] 217 | |             .forward(input.retaped::<T>())
[INFO] [stdout] 218 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 223 | |             )>()?
[INFO] [stdout] 224 | |             .try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     | |                                                  ^
[INFO] [stdout]     | |                                                  |
[INFO] [stdout]     | |__________________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                    ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:215:17
[INFO] [stdout]     |
[INFO] [stdout] 215 |           let q = self
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 216 | |             .w_q
[INFO] [stdout] 217 | |             .forward(input.retaped::<T>())
[INFO] [stdout] 218 | |             .try_reshape::<(
[INFO] [stdout] ...   |
[INFO] [stdout] 223 | |             )>()?
[INFO] [stdout] 224 | |             .try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     | |                                                   ^
[INFO] [stdout]     | |                                                   |
[INFO] [stdout]     | |___________________________________________________the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                                                     ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:218:14
[INFO] [stdout]     |
[INFO] [stdout] 218 |             .try_reshape::<(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:224:14
[INFO] [stdout]     |
[INFO] [stdout] 224 |             .try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |              ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:227:18
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let qk = q.try_matmul(k)?.try_mul(scalar)?;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                  ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:230:22
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let tokens = qk.try_matmul(v)?;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:230:22
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let tokens = qk.try_matmul(v)?;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:231:22
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let tokens = tokens.try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:231:22
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let tokens = tokens.try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:231:29
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let tokens = tokens.try_permute::<_, Axes4<0, 2, 1, 3>>()?;
[INFO] [stdout]     |                             ^^^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                             ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:232:22
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let tokens = tokens.try_reshape::<(Const<B>, Const<SEQ_LEN>, Const<HIDDEN>)>()?;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                      ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/self_attn.rs:232:29
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let tokens = tokens.try_reshape::<(Const<B>, Const<SEQ_LEN>, Const<HIDDEN>)>()?;
[INFO] [stdout]     |                             ^^^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]     |                             ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 178 |         T: Tape<E, D> + 'static,
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]   --> src/state_trait.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let mut t = dev.zeros();
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]    |                     ...so that the type `Self` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 17 | >: Clone where Self: 'static
[INFO] [stdout]    |          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]   --> src/state_trait.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 |         t[[Self::action_to_index(action)]] = 1.0_f32.into();
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]    |          ...so that the type `Self` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 17 | >: Clone where Self: 'static
[INFO] [stdout]    |          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]   --> src/state_trait.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         t.to_device(&D::default())
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]    |         ...so that the type `Self` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 17 | >: Clone where Self: 'static
[INFO] [stdout]    |          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         get_batch_from_fn(rng, Self::play_one_game, cap_from_game)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |         ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_batch<const B: usize, R: rand::Rng + ?Sized + 'static>(
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough
[INFO] [stdout]    --> src/state_trait.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         get_batch_from_fn(rng, Self::play_one_game, cap_from_game)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         the parameter type `Self` must be valid for the static lifetime...
[INFO] [stdout]     |         ...so that the type `Self` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  94 | >: DTState<E, D, Config> where Self: 'static
[INFO] [stdout]     |                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:70:20
[INFO] [stdout]    |
[INFO] [stdout] 70 |           let batch: BatchedInput<
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 71 | |             B,
[INFO] [stdout] 72 | |             { Game::STATE_SIZE },
[INFO] [stdout] 73 | |             { Game::ACTION_SIZE },
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | |             OwnedTape<E, D>,
[INFO] [stdout] 78 | |         > = (batch.0.traced(grads), batch.1, batch.2, batch.3);
[INFO] [stdout]    | |         ^
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |_________the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |           ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:70:20
[INFO] [stdout]    |
[INFO] [stdout] 70 |           let batch: BatchedInput<
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 71 | |             B,
[INFO] [stdout] 72 | |             { Game::STATE_SIZE },
[INFO] [stdout] 73 | |             { Game::ACTION_SIZE },
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | |             OwnedTape<E, D>,
[INFO] [stdout] 78 | |         > = (batch.0.traced(grads), batch.1, batch.2, batch.3);
[INFO] [stdout]    | |         ^
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |_________the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |           ...so that the type `O` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |         > = (batch.0.traced(grads), batch.1, batch.2, batch.3);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |              ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]   --> src/train.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |         > = (batch.0.traced(grads), batch.1, batch.2, batch.3);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]    |              ...so that the type `O` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]    |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let y = self.0.forward_mut(batch);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                 ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:82:22
[INFO] [stdout]    |
[INFO] [stdout] 82 |           let actual = actions
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 83 | |             .map(|action| Game::action_to_tensor(&action))
[INFO] [stdout]    | |                                                          ^
[INFO] [stdout]    | |                                                          |
[INFO] [stdout]    | |__________________________________________________________the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                                            ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:82:22
[INFO] [stdout]    |
[INFO] [stdout] 82 |           let actual = actions
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 83 | |             .map(|action| Game::action_to_tensor(&action))
[INFO] [stdout] 84 | |             .stack();
[INFO] [stdout]    | |                    ^
[INFO] [stdout]    | |                    |
[INFO] [stdout]    | |____________________the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                      ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:83:27
[INFO] [stdout]    |
[INFO] [stdout] 83 |             .map(|action| Game::action_to_tensor(&action))
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                           ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:83:27
[INFO] [stdout]    |
[INFO] [stdout] 62 |         optimizer: &mut O,
[INFO] [stdout]    |                    ------ the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 83 |             .map(|action| Game::action_to_tensor(&action))
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 55 ~         'a, const B: usize,
[INFO] [stdout] 56 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E>,
[INFO] [stdout] ...
[INFO] [stdout] 61 |         //mask: Tensor<(Const<B>, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>,
[INFO] [stdout] 62 ~         optimizer: &'a mut O,
[INFO] [stdout] 63 |     ) -> E
[INFO] [stdout] 64 |     where
[INFO] [stdout] 65 ~         [(); 3 * { Config::SEQ_LEN }]: Sized, Game: 'a
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/train.rs:87:20
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let loss = loss(pred, actual);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                    ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:81:29
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let mut actions_in_seq: [Tensor<(Const<{ Game::ACTION_SIZE }>,), E, D>; Config::SEQ_LEN] =
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |         std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:82:33
[INFO] [stdout]    |
[INFO] [stdout] 82 |         std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                 ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:82:33
[INFO] [stdout]    |
[INFO] [stdout] 66 |     dev: &D,
[INFO] [stdout]    |          -- the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 82 |         std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                 ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 59 ~     'a, E: Dtype + From<f32> + num_traits::Float + rand_distr::uniform::SampleUniform,
[INFO] [stdout] 60 |     D: Device<E> + dfdx::tensor::ZerosTensor<usize>,
[INFO] [stdout] 61 |     Config: DTModelConfig + 'static,
[INFO] [stdout] 62 ~     Game: DTState<E, D, Config> + 'a,
[INFO] [stdout] 63 | >(
[INFO] [stdout] 64 |     states: Vec<Game>,
[INFO] [stdout] 65 |     actions: Vec<Game::Action>,
[INFO] [stdout] 66 ~     dev: &'a D,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:83:28
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut states_in_seq: [Tensor<(Const<{ Game::STATE_SIZE }>,), E, D>; Config::SEQ_LEN] =
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                            ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:84:33
[INFO] [stdout]    |
[INFO] [stdout] 84 |         std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                                 ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:84:33
[INFO] [stdout]    |
[INFO] [stdout] 66 |     dev: &D,
[INFO] [stdout]    |          -- the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 84 |         std::array::from_fn(|_| dev.zeros());
[INFO] [stdout]    |                                 ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 59 ~     'a, E: Dtype + From<f32> + num_traits::Float + rand_distr::uniform::SampleUniform,
[INFO] [stdout] 60 |     D: Device<E> + dfdx::tensor::ZerosTensor<usize>,
[INFO] [stdout] 61 |     Config: DTModelConfig + 'static,
[INFO] [stdout] 62 ~     Game: DTState<E, D, Config> + 'a,
[INFO] [stdout] 63 | >(
[INFO] [stdout] 64 |     states: Vec<Game>,
[INFO] [stdout] 65 |     actions: Vec<Game::Action>,
[INFO] [stdout] 66 ~     dev: &'a D,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:92:26
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let new_action = Game::action_to_tensor(&action);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                          ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         next_sequence(&mut actions_in_seq, new_action);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:96:25
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let new_state = state.to_tensor();
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         next_sequence(&mut states_in_seq, new_state);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |             states_in_seq.clone().stack(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |             states_in_seq.clone().stack(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |             masked_next(&actions_in_seq, dev).stack(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |             masked_next(&actions_in_seq, dev).stack(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |             rtg_in_seq.clone().stack(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         inputs.push(input);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout]  62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:76:22
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let mut inputs = vec![];
[INFO] [stdout]    |                      ^^^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                      ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]   --> src/trait_helpers.rs:76:22
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let mut inputs = vec![];
[INFO] [stdout]    |                      ^^^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]    |                      ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]    |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |             ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 255 |         R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/trait_helpers.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         &mut self,
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `self` is a reference that is only valid in the method body
[INFO] [stdout]     |         let's call the lifetime of this reference `'1`
[INFO] [stdout] ...
[INFO] [stdout] 278 |             get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `self` escapes the method body here
[INFO] [stdout]     |             argument requires that `'1` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `temp`, which is owned by the current function
[INFO] [stdout]    --> src/trait_helpers.rs:278:36
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |                                    ^^^^^                    ---- `temp` is borrowed here
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    may outlive borrowed value `temp`
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/trait_helpers.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to force the closure to take ownership of `temp` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, move |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `desired_reward`, which is owned by the current function
[INFO] [stdout]    --> src/trait_helpers.rs:278:36
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |                                    ^^^^^                          -------------- `desired_reward` is borrowed here
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    may outlive borrowed value `desired_reward`
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/trait_helpers.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to force the closure to take ownership of `desired_reward` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, move |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:278:103
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |                                                                                                       ^
[INFO] [stdout]     |                                                                                                       |
[INFO] [stdout]     |                                                                                                       the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |                                                                                                       ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 255 |         R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 280 |         self.train_on_batch::<B, O>(batch, actual, optimizer)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         the parameter type `O` must be valid for the static lifetime...
[INFO] [stdout]     |         ...so that the type `O` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 256 |         O: Optimizer<DTModel<Config, { Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D>, D, E> + 'static,
[INFO] [stdout]     |                                                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/trait_helpers.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |             get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game);
[INFO] [stdout]     |             ------------------------------------------------------------------------------------------
[INFO] [stdout]     |             |                      |     |
[INFO] [stdout]     |             |                      |     first borrow occurs due to use of `*self` in closure
[INFO] [stdout]     |             |                      immutable borrow occurs here
[INFO] [stdout]     |             argument requires that `*self` is borrowed for `'static`
[INFO] [stdout] 279 |
[INFO] [stdout] 280 |         self.train_on_batch::<B, O>(batch, actual, optimizer)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:281:5
[INFO] [stdout]     |
[INFO] [stdout] 281 |     }
[INFO] [stdout]     |     ^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |     ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 255 |         R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:325:20
[INFO] [stdout]     |
[INFO] [stdout] 325 |     let mut batch: [Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>; B] =
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |                    ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:325:20
[INFO] [stdout]     |
[INFO] [stdout] 325 |     let mut batch: [Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>; B] =
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |                    ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:325:20
[INFO] [stdout]     |
[INFO] [stdout] 325 |     let mut batch: [Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>; B] =
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                    ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |         ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |         ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:34
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                  ^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |                                  ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:34
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                  ^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |                                  ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:34
[INFO] [stdout]     |
[INFO] [stdout] 307 |     rng: &mut R,
[INFO] [stdout]     |          ------ the parameter type `F` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                  ^^^^^^^^^^^ ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 299 ~     'a, const B: usize,
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized,
[INFO] [stdout] ...
[INFO] [stdout] 306 | >(
[INFO] [stdout] 307 ~     rng: &'a mut R,
[INFO] [stdout] 308 |     player_fn: F,
[INFO] [stdout] ...
[INFO] [stdout] 315 | where
[INFO] [stdout] 316 ~     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'a,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:34
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                  ^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                                  ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:34
[INFO] [stdout]     |
[INFO] [stdout] 307 |     rng: &mut R,
[INFO] [stdout]     |          ------ the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                  ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 299 ~     'a, const B: usize,
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized,
[INFO] [stdout] ...
[INFO] [stdout] 304 |     Config: DTModelConfig + 'static,
[INFO] [stdout] 305 ~     Game: DTState<E, D, Config> + 'a,
[INFO] [stdout] 306 | >(
[INFO] [stdout] 307 ~     rng: &'a mut R,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:47
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                               ^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |                                               ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:47
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                               ^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |                                               ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:47
[INFO] [stdout]     |
[INFO] [stdout] 307 |     rng: &mut R,
[INFO] [stdout]     |          ------ the parameter type `F` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                               ^^^^^^^^^^^ ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 299 ~     'a, const B: usize,
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized,
[INFO] [stdout] ...
[INFO] [stdout] 306 | >(
[INFO] [stdout] 307 ~     rng: &'a mut R,
[INFO] [stdout] 308 |     player_fn: F,
[INFO] [stdout] ...
[INFO] [stdout] 315 | where
[INFO] [stdout] 316 ~     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'a,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:47
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                               ^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                                               ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:47
[INFO] [stdout]     |
[INFO] [stdout] 307 |     rng: &mut R,
[INFO] [stdout]     |          ------ the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                               ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 299 ~     'a, const B: usize,
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized,
[INFO] [stdout] ...
[INFO] [stdout] 304 |     Config: DTModelConfig + 'static,
[INFO] [stdout] 305 ~     Game: DTState<E, D, Config> + 'a,
[INFO] [stdout] 306 | >(
[INFO] [stdout] 307 ~     rng: &'a mut R,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:60
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                            ^^^^^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |                                                            ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:60
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                            ^^^^^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |                                                            ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:60
[INFO] [stdout]     |
[INFO] [stdout] 307 |     rng: &mut R,
[INFO] [stdout]     |          ------ the parameter type `F` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 299 ~     'a, const B: usize,
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized,
[INFO] [stdout] ...
[INFO] [stdout] 306 | >(
[INFO] [stdout] 307 ~     rng: &'a mut R,
[INFO] [stdout] 308 |     player_fn: F,
[INFO] [stdout] ...
[INFO] [stdout] 315 | where
[INFO] [stdout] 316 ~     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'a,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:60
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                            ^^^^^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                                                            ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:60
[INFO] [stdout]     |
[INFO] [stdout] 307 |     rng: &mut R,
[INFO] [stdout]     |          ------ the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 299 ~     'a, const B: usize,
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized,
[INFO] [stdout] ...
[INFO] [stdout] 304 |     Config: DTModelConfig + 'static,
[INFO] [stdout] 305 ~     Game: DTState<E, D, Config> + 'a,
[INFO] [stdout] 306 | >(
[INFO] [stdout] 307 ~     rng: &'a mut R,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:73
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^
[INFO] [stdout]     |                                                                         |
[INFO] [stdout]     |                                                                         the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |                                                                         ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:73
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^
[INFO] [stdout]     |                                                                         |
[INFO] [stdout]     |                                                                         the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |                                                                         ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:73
[INFO] [stdout]     |
[INFO] [stdout] 307 |     rng: &mut R,
[INFO] [stdout]     |          ------ the parameter type `F` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^ ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 299 ~     'a, const B: usize,
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized,
[INFO] [stdout] ...
[INFO] [stdout] 306 | >(
[INFO] [stdout] 307 ~     rng: &'a mut R,
[INFO] [stdout] 308 |     player_fn: F,
[INFO] [stdout] ...
[INFO] [stdout] 315 | where
[INFO] [stdout] 316 ~     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'a,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:73
[INFO] [stdout]     |
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^
[INFO] [stdout]     |                                                                         |
[INFO] [stdout]     |                                                                         the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                                                                         ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:326:73
[INFO] [stdout]     |
[INFO] [stdout] 307 |     rng: &mut R,
[INFO] [stdout]     |          ------ the parameter type `Game` must be valid for the anonymous lifetime defined here...
[INFO] [stdout] ...
[INFO] [stdout] 326 |         std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros()));
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 299 ~     'a, const B: usize,
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized,
[INFO] [stdout] ...
[INFO] [stdout] 304 |     Config: DTModelConfig + 'static,
[INFO] [stdout] 305 ~     Game: DTState<E, D, Config> + 'a,
[INFO] [stdout] 306 | >(
[INFO] [stdout] 307 ~     rng: &'a mut R,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:378:39
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let (inputs, last_elements) = game_to_inputs(states, actions, &dev);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                                       ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:381:19
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let len = inputs.len();
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                   ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:384:27
[INFO] [stdout]     |
[INFO] [stdout] 384 |         for (i, input) in inputs.into_iter().enumerate() {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                           ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:384:27
[INFO] [stdout]     |
[INFO] [stdout] 384 |         for (i, input) in inputs.into_iter().enumerate() {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                           ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:384:27
[INFO] [stdout]     |
[INFO] [stdout] 384 |         for (i, input) in inputs.into_iter().enumerate() {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                           ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |     let batched_inputs = batch_inputs(batch, &dev);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the parameter type `R` must be valid for the static lifetime...
[INFO] [stdout]     |                          ...so that the type `R` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 300 |     R: rand::Rng + ?Sized + 'static,
[INFO] [stdout]     |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |     let batched_inputs = batch_inputs(batch, &dev);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the parameter type `F` must be valid for the static lifetime...
[INFO] [stdout]     |                          ...so that the type `F` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 316 |     F: Fn(&mut R) -> (Vec<Game>, Vec<Game::Action>) + 'static,
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough
[INFO] [stdout]    --> src/trait_helpers.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |     let batched_inputs = batch_inputs(batch, &dev);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the parameter type `Game` must be valid for the static lifetime...
[INFO] [stdout]     |                          ...so that the type `Game` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Game: DTState<E, D, Config> + 'static,
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     dev.tensor(data)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |     ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub fn stack_usize<E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         tensors[i].copy_into(&mut data[i]);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |         ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Config: DTModelConfig + 'static,
[INFO] [stdout]    |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     dev.tensor(data)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |     ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Config: DTModelConfig + 'static,
[INFO] [stdout]    |                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     print_seq(&inp.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |     ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     print_seq(&inp.1);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |     ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     print_seq(&inp.2);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |     ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:50:23
[INFO] [stdout]    |
[INFO] [stdout] 50 |     println!("{:?}", &inp.3.as_vec());
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |                       ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn print_input<const S: usize, const A: usize, E: Dtype, D: Device<E>, Config: DTModelConfig + 'static>(
[INFO] [stdout]    |                                                                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         println!("{i}: {:?}", seq.clone().select(dev.tensor(i)).as_vec());
[INFO] [stdout]    |                               ^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |                               ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn print_seq<E: Dtype, D: Device<E>, Config: DTModelConfig + 'static, const M: usize>(
[INFO] [stdout]    |                                                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough
[INFO] [stdout]   --> src/utils.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         println!("{i}: {:?}", seq.clone().select(dev.tensor(i)).as_vec());
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the parameter type `Config` must be valid for the static lifetime...
[INFO] [stdout]    |                               ...so that the type `Config` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn print_seq<E: Dtype, D: Device<E>, Config: DTModelConfig + 'static, const M: usize>(
[INFO] [stdout]    |                                                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0310, E0311, E0373, E0502, E0521, E0554.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0310`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `decision_transformer_dfdx` (lib) due to 252 previous errors
[INFO] running `Command { std: "docker" "inspect" "e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853", kill_on_drop: false }`
[INFO] [stdout] e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853
