[INFO] fetching crate rene 0.1.0...
[INFO] checking rene-0.1.0 against master#0984becf01112cbd3583c796541760b65340c8db for pr-119820-2
[INFO] extracting crate rene 0.1.0 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate rene 0.1.0 on toolchain 0984becf01112cbd3583c796541760b65340c8db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0984becf01112cbd3583c796541760b65340c8db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-4-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate rene 0.1.0
[INFO] finished tweaking crates.io crate rene 0.1.0
[INFO] tweaked toml for crates.io crate rene 0.1.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0984becf01112cbd3583c796541760b65340c8db" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0984becf01112cbd3583c796541760b65340c8db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded target-lexicon v0.12.13
[INFO] [stderr]   Downloaded memoffset v0.9.0
[INFO] [stderr]   Downloaded pyo3-macros v0.19.2
[INFO] [stderr]   Downloaded pyo3-build-config v0.19.2
[INFO] [stderr]   Downloaded unindent v0.1.11
[INFO] [stderr]   Downloaded indoc v1.0.9
[INFO] [stderr]   Downloaded pyo3-macros-backend v0.19.2
[INFO] [stderr]   Downloaded pyo3-ffi v0.19.2
[INFO] [stderr]   Downloaded pyo3 v0.19.2
[INFO] [stderr]   Downloaded traiter v4.0.0
[INFO] [stderr]   Downloaded rithm v14.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+0984becf01112cbd3583c796541760b65340c8db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4779880879bc6c1bca54cc03980fcefef64c92b4a73a5e490f2202582c183112
[INFO] running `Command { std: "docker" "start" "-a" "4779880879bc6c1bca54cc03980fcefef64c92b4a73a5e490f2202582c183112", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4779880879bc6c1bca54cc03980fcefef64c92b4a73a5e490f2202582c183112", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4779880879bc6c1bca54cc03980fcefef64c92b4a73a5e490f2202582c183112", kill_on_drop: false }`
[INFO] [stdout] 4779880879bc6c1bca54cc03980fcefef64c92b4a73a5e490f2202582c183112
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+0984becf01112cbd3583c796541760b65340c8db" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 00ed9968e9a62203ea8814d86cc7ba6b3211f359aac7d8e8fe5ba544e6476eea
[INFO] running `Command { std: "docker" "start" "-a" "00ed9968e9a62203ea8814d86cc7ba6b3211f359aac7d8e8fe5ba544e6476eea", kill_on_drop: false }`
[INFO] [stderr]    Compiling target-lexicon v0.12.13
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking unindent v0.1.11
[INFO] [stderr]    Compiling indoc v1.0.9
[INFO] [stderr]     Checking traiter v4.0.0
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling pyo3-build-config v0.19.2
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]    Compiling pyo3-ffi v0.19.2
[INFO] [stderr]    Compiling pyo3 v0.19.2
[INFO] [stderr]    Compiling rithm v14.0.0
[INFO] [stderr]    Compiling rene v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling pyo3-macros-backend v0.19.2
[INFO] [stderr]    Compiling pyo3-macros v0.19.2
[INFO] [stdout] warning: unused import: `to_unique_non_crossing_or_overlapping_segments`
[INFO] [stdout]  --> src/bentley_ottmann/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     to_unique_non_crossing_or_overlapping_segments,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `to_unique_non_crossing_or_overlapping_segments`
[INFO] [stdout]  --> src/bentley_ottmann/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     to_unique_non_crossing_or_overlapping_segments,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]     --> src/lib.rs:1320:22
[INFO] [stdout]      |
[INFO] [stdout] 1320 |     fn locate(&self, point: &PyExactPoint, py: Python) -> PyResult<&PyAny> {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]     --> src/lib.rs:1320:22
[INFO] [stdout]      |
[INFO] [stdout] 1320 |     fn locate(&self, point: &PyExactPoint, py: Python) -> PyResult<&PyAny> {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_unique_non_crossing_or_overlapping_segments` is never used
[INFO] [stdout]   --> src/bentley_ottmann/base.rs:97:15
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub(crate) fn to_unique_non_crossing_or_overlapping_segments<
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_unique_non_crossing_or_overlapping_segments` is never used
[INFO] [stdout]   --> src/bentley_ottmann/base.rs:97:15
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub(crate) fn to_unique_non_crossing_or_overlapping_segments<
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 29.74s
[INFO] running `Command { std: "docker" "inspect" "00ed9968e9a62203ea8814d86cc7ba6b3211f359aac7d8e8fe5ba544e6476eea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "00ed9968e9a62203ea8814d86cc7ba6b3211f359aac7d8e8fe5ba544e6476eea", kill_on_drop: false }`
[INFO] [stdout] 00ed9968e9a62203ea8814d86cc7ba6b3211f359aac7d8e8fe5ba544e6476eea
[INFO] checking rene-0.1.0 against try#a3b728f611e28e04397f71d448ae3012d3780010 for pr-119820-2
[INFO] extracting crate rene 0.1.0 into /workspace/builds/worker-4-tc2/source
[INFO] validating manifest of crates.io crate rene 0.1.0 on toolchain a3b728f611e28e04397f71d448ae3012d3780010
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3b728f611e28e04397f71d448ae3012d3780010" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate rene 0.1.0
[INFO] finished tweaking crates.io crate rene 0.1.0
[INFO] tweaked toml for crates.io crate rene 0.1.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3b728f611e28e04397f71d448ae3012d3780010" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3b728f611e28e04397f71d448ae3012d3780010" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+a3b728f611e28e04397f71d448ae3012d3780010" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9d193973216df1db99a1267bca02b7f05fb7d9ecf88d906d7b4754b72c5d3cca
[INFO] running `Command { std: "docker" "start" "-a" "9d193973216df1db99a1267bca02b7f05fb7d9ecf88d906d7b4754b72c5d3cca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9d193973216df1db99a1267bca02b7f05fb7d9ecf88d906d7b4754b72c5d3cca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d193973216df1db99a1267bca02b7f05fb7d9ecf88d906d7b4754b72c5d3cca", kill_on_drop: false }`
[INFO] [stdout] 9d193973216df1db99a1267bca02b7f05fb7d9ecf88d906d7b4754b72c5d3cca
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+a3b728f611e28e04397f71d448ae3012d3780010" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d47198268cf8f610bfb1ea012f064a1106dc0b008625ce31747ccf0b913add55
[INFO] running `Command { std: "docker" "start" "-a" "d47198268cf8f610bfb1ea012f064a1106dc0b008625ce31747ccf0b913add55", kill_on_drop: false }`
[INFO] [stderr]    Compiling target-lexicon v0.12.13
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling indoc v1.0.9
[INFO] [stderr]     Checking unindent v0.1.11
[INFO] [stderr]     Checking traiter v4.0.0
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling pyo3-build-config v0.19.2
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]    Compiling pyo3-ffi v0.19.2
[INFO] [stderr]    Compiling pyo3 v0.19.2
[INFO] [stderr]    Compiling rithm v14.0.0
[INFO] [stderr]    Compiling rene v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling pyo3-macros-backend v0.19.2
[INFO] [stderr]    Compiling pyo3-macros v0.19.2
[INFO] [stdout] warning: unused import: `to_unique_non_crossing_or_overlapping_segments`
[INFO] [stdout]  --> src/bentley_ottmann/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     to_unique_non_crossing_or_overlapping_segments,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `to_unique_non_crossing_or_overlapping_segments`
[INFO] [stdout]  --> src/bentley_ottmann/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     to_unique_non_crossing_or_overlapping_segments,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 88  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 89  | |             &bounding_boxes,
[INFO] [stdout] 90  | |             &other_bounding_box,
[INFO] [stdout] 91  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 74  |       fn difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 103 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 104 | |                 &other_bounding_boxes,
[INFO] [stdout] 105 | |                 &bounding_box,
[INFO] [stdout] 106 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 104 | |                 &other_bounding_boxes,
[INFO] [stdout] 105 | |                 &bounding_box,
[INFO] [stdout] 106 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:185:43
[INFO] [stdout]     |
[INFO] [stdout] 171 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 185 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 186 | |             &bounding_boxes,
[INFO] [stdout] 187 | |             &other_bounding_box,
[INFO] [stdout] 188 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:185:43
[INFO] [stdout]     |
[INFO] [stdout] 185 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 186 | |             &bounding_boxes,
[INFO] [stdout] 187 | |             &other_bounding_box,
[INFO] [stdout] 188 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/difference.rs:195:36
[INFO] [stdout]     |
[INFO] [stdout] 194 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 195 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 200 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 201 | |                 &other_bounding_boxes,
[INFO] [stdout] 202 | |                 &bounding_box,
[INFO] [stdout] 203 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 251 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 200 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 201 | |                 &other_bounding_boxes,
[INFO] [stdout] 202 | |                 &bounding_box,
[INFO] [stdout] 203 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 200 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 201 | |                 &other_bounding_boxes,
[INFO] [stdout] 202 | |                 &bounding_box,
[INFO] [stdout] 203 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:281:43
[INFO] [stdout]     |
[INFO] [stdout] 267 |       fn difference(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 281 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 282 | |             &bounding_boxes,
[INFO] [stdout] 283 | |             &other_bounding_box,
[INFO] [stdout] 284 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:281:43
[INFO] [stdout]     |
[INFO] [stdout] 281 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 282 | |             &bounding_boxes,
[INFO] [stdout] 283 | |             &other_bounding_box,
[INFO] [stdout] 284 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/difference.rs:291:36
[INFO] [stdout]     |
[INFO] [stdout] 290 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 291 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 346 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |       fn difference(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:377:43
[INFO] [stdout]     |
[INFO] [stdout] 363 |       fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 377 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 378 | |             &bounding_boxes,
[INFO] [stdout] 379 | |             &other_bounding_box,
[INFO] [stdout] 380 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:377:43
[INFO] [stdout]     |
[INFO] [stdout] 363 |       fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 377 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 378 | |             &bounding_boxes,
[INFO] [stdout] 379 | |             &other_bounding_box,
[INFO] [stdout] 380 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:377:43
[INFO] [stdout]     |
[INFO] [stdout] 377 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 378 | |             &bounding_boxes,
[INFO] [stdout] 379 | |             &other_bounding_box,
[INFO] [stdout] 380 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:114:45
[INFO] [stdout]     |
[INFO] [stdout] 100 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 114 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 115 | |             &bounding_boxes,
[INFO] [stdout] 116 | |             &other_bounding_box,
[INFO] [stdout] 117 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:114:45
[INFO] [stdout]     |
[INFO] [stdout] 114 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 115 | |             &bounding_boxes,
[INFO] [stdout] 116 | |             &other_bounding_box,
[INFO] [stdout] 117 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:122:36
[INFO] [stdout]     |
[INFO] [stdout] 121 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 122 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 127 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 128 | |                 &other_bounding_boxes,
[INFO] [stdout] 129 | |                 &bounding_box,
[INFO] [stdout] 130 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 178 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 127 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 128 | |                 &other_bounding_boxes,
[INFO] [stdout] 129 | |                 &bounding_box,
[INFO] [stdout] 130 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 128 | |                 &other_bounding_boxes,
[INFO] [stdout] 129 | |                 &bounding_box,
[INFO] [stdout] 130 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:239:45
[INFO] [stdout]     |
[INFO] [stdout] 225 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 239 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 240 | |             &bounding_boxes,
[INFO] [stdout] 241 | |             &other_bounding_box,
[INFO] [stdout] 242 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:239:45
[INFO] [stdout]     |
[INFO] [stdout] 225 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 239 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 240 | |             &bounding_boxes,
[INFO] [stdout] 241 | |             &other_bounding_box,
[INFO] [stdout] 242 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:239:45
[INFO] [stdout]     |
[INFO] [stdout] 239 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 240 | |             &bounding_boxes,
[INFO] [stdout] 241 | |             &other_bounding_box,
[INFO] [stdout] 242 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:86:43
[INFO] [stdout]     |
[INFO] [stdout] 86  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 87  | |             &bounding_boxes,
[INFO] [stdout] 88  | |             &other_bounding_box,
[INFO] [stdout] 89  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout] 70  |       fn symmetric_difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 102 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 103 | |             &other_bounding_boxes,
[INFO] [stdout] 104 | |             &bounding_box,
[INFO] [stdout] 105 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout] 102 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 103 | |             &other_bounding_boxes,
[INFO] [stdout] 104 | |             &bounding_box,
[INFO] [stdout] 105 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 176 |           other: &Multisegment<Scalar>,
[INFO] [stdout]     |           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:205:36
[INFO] [stdout]     |
[INFO] [stdout] 180 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 205 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 261 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 175 |           self,
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `self` is a reference that is only valid in the method body
[INFO] [stdout]     |           has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:294:43
[INFO] [stdout]     |
[INFO] [stdout] 278 |       fn symmetric_difference(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 294 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 295 | |             &bounding_boxes,
[INFO] [stdout] 296 | |             &other_bounding_box,
[INFO] [stdout] 297 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:294:43
[INFO] [stdout]     |
[INFO] [stdout] 278 |       fn symmetric_difference(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 294 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 295 | |             &bounding_boxes,
[INFO] [stdout] 296 | |             &other_bounding_box,
[INFO] [stdout] 297 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:294:43
[INFO] [stdout]     |
[INFO] [stdout] 294 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 295 | |             &bounding_boxes,
[INFO] [stdout] 296 | |             &other_bounding_box,
[INFO] [stdout] 297 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/union.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 88  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 89  | |             &bounding_boxes,
[INFO] [stdout] 90  | |             &other_bounding_box,
[INFO] [stdout] 91  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/union.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 72  |       fn union(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 104 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 105 | |             &other_bounding_boxes,
[INFO] [stdout] 106 | |             &bounding_box,
[INFO] [stdout] 107 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/union.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 105 | |             &other_bounding_boxes,
[INFO] [stdout] 106 | |             &bounding_box,
[INFO] [stdout] 107 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/union.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 177 |       fn union(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                      -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/union.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/union.rs:205:36
[INFO] [stdout]     |
[INFO] [stdout] 180 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 205 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 262 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/union.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 177 |       fn union(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/union.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:81:13
[INFO] [stdout]     |
[INFO] [stdout] 81  |             to_boxes_have_common_area(&bounding_boxes, &other_bounding_box);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:552:39
[INFO] [stdout]     |
[INFO] [stdout] 552 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:92:46
[INFO] [stdout]     |
[INFO] [stdout] 69  |       fn difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 92  |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 93  | |             &other_bounding_boxes,
[INFO] [stdout] 94  | |             &bounding_box,
[INFO] [stdout] 95  | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:92:46
[INFO] [stdout]     |
[INFO] [stdout] 92  |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 93  | |             &other_bounding_boxes,
[INFO] [stdout] 94  | |             &bounding_box,
[INFO] [stdout] 95  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                   ----
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                   has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 168 |             to_boxes_have_common_area(&bounding_boxes, &other_bounding_box);
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:552:39
[INFO] [stdout]     |
[INFO] [stdout] 552 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                         -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 168 |             to_boxes_have_common_area(&bounding_boxes, &other_bounding_box);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `other` escapes the method body here
[INFO] [stdout]     |             argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:552:39
[INFO] [stdout]     |
[INFO] [stdout] 552 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             to_boxes_have_common_area(&bounding_boxes, &other_bounding_box);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:552:39
[INFO] [stdout]     |
[INFO] [stdout] 552 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:74:40
[INFO] [stdout]     |
[INFO] [stdout] 74  |           let common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 75  | |             &bounding_boxes,
[INFO] [stdout] 76  | |             &other_bounding_box,
[INFO] [stdout] 77  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:86:46
[INFO] [stdout]     |
[INFO] [stdout] 63  |       fn intersection(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 86  |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 87  | |             &other_bounding_boxes,
[INFO] [stdout] 88  | |             &bounding_box,
[INFO] [stdout] 89  | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:86:46
[INFO] [stdout]     |
[INFO] [stdout] 86  |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 87  | |             &other_bounding_boxes,
[INFO] [stdout] 88  | |             &bounding_box,
[INFO] [stdout] 89  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:164:45
[INFO] [stdout]     |
[INFO] [stdout] 150 |       fn intersection(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 164 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 165 | |             &bounding_boxes,
[INFO] [stdout] 166 | |             &other_bounding_box,
[INFO] [stdout] 167 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:164:45
[INFO] [stdout]     |
[INFO] [stdout] 164 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 165 | |             &bounding_boxes,
[INFO] [stdout] 166 | |             &other_bounding_box,
[INFO] [stdout] 167 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:172:36
[INFO] [stdout]     |
[INFO] [stdout] 171 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 172 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 177 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 178 | |                 &other_bounding_boxes,
[INFO] [stdout] 179 | |                 &bounding_box,
[INFO] [stdout] 180 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 228 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |       fn intersection(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 177 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 178 | |                 &other_bounding_boxes,
[INFO] [stdout] 179 | |                 &bounding_box,
[INFO] [stdout] 180 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 178 | |                 &other_bounding_boxes,
[INFO] [stdout] 179 | |                 &bounding_box,
[INFO] [stdout] 180 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:260:45
[INFO] [stdout]     |
[INFO] [stdout] 246 |       fn intersection(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 260 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 261 | |             &bounding_boxes,
[INFO] [stdout] 262 | |             &other_bounding_box,
[INFO] [stdout] 263 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:260:45
[INFO] [stdout]     |
[INFO] [stdout] 260 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 261 | |             &bounding_boxes,
[INFO] [stdout] 262 | |             &other_bounding_box,
[INFO] [stdout] 263 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:268:36
[INFO] [stdout]     |
[INFO] [stdout] 267 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 268 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 273 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 274 | |                 &other_bounding_boxes,
[INFO] [stdout] 275 | |                 &bounding_box,
[INFO] [stdout] 276 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 324 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |       fn intersection(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 273 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 274 | |                 &other_bounding_boxes,
[INFO] [stdout] 275 | |                 &bounding_box,
[INFO] [stdout] 276 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 274 | |                 &other_bounding_boxes,
[INFO] [stdout] 275 | |                 &bounding_box,
[INFO] [stdout] 276 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:351:40
[INFO] [stdout]     |
[INFO] [stdout] 340 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 351 |           let common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 352 | |             &bounding_boxes,
[INFO] [stdout] 353 | |             &other_bounding_box,
[INFO] [stdout] 354 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:351:40
[INFO] [stdout]     |
[INFO] [stdout] 340 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 351 |           let common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 352 | |             &bounding_boxes,
[INFO] [stdout] 353 | |             &other_bounding_box,
[INFO] [stdout] 354 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:351:40
[INFO] [stdout]     |
[INFO] [stdout] 351 |           let common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 352 | |             &bounding_boxes,
[INFO] [stdout] 353 | |             &other_bounding_box,
[INFO] [stdout] 354 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:418:45
[INFO] [stdout]     |
[INFO] [stdout] 404 |       fn intersection(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 418 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 419 | |             &bounding_boxes,
[INFO] [stdout] 420 | |             &other_bounding_box,
[INFO] [stdout] 421 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:418:45
[INFO] [stdout]     |
[INFO] [stdout] 404 |       fn intersection(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 418 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 419 | |             &bounding_boxes,
[INFO] [stdout] 420 | |             &other_bounding_box,
[INFO] [stdout] 421 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:418:45
[INFO] [stdout]     |
[INFO] [stdout] 418 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 419 | |             &bounding_boxes,
[INFO] [stdout] 420 | |             &other_bounding_box,
[INFO] [stdout] 421 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:84:43
[INFO] [stdout]     |
[INFO] [stdout] 84  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 85  | |             &bounding_boxes,
[INFO] [stdout] 86  | |             &other_bounding_box,
[INFO] [stdout] 87  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:100:49
[INFO] [stdout]     |
[INFO] [stdout] 68  |       fn symmetric_difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 100 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 101 | |             &other_bounding_boxes,
[INFO] [stdout] 102 | |             &bounding_box,
[INFO] [stdout] 103 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:100:49
[INFO] [stdout]     |
[INFO] [stdout] 100 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 101 | |             &other_bounding_boxes,
[INFO] [stdout] 102 | |             &bounding_box,
[INFO] [stdout] 103 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 167 |       fn symmetric_difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 183 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 184 | |             &bounding_boxes,
[INFO] [stdout] 185 | |             &other_bounding_box,
[INFO] [stdout] 186 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 167 |       fn symmetric_difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 183 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 184 | |             &bounding_boxes,
[INFO] [stdout] 185 | |             &other_bounding_box,
[INFO] [stdout] 186 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 183 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 184 | |             &bounding_boxes,
[INFO] [stdout] 185 | |             &other_bounding_box,
[INFO] [stdout] 186 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:84:43
[INFO] [stdout]     |
[INFO] [stdout] 84  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 85  | |             &bounding_boxes,
[INFO] [stdout] 86  | |             &other_bounding_box,
[INFO] [stdout] 87  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:100:49
[INFO] [stdout]     |
[INFO] [stdout] 68  |       fn union(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 100 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 101 | |             &other_bounding_boxes,
[INFO] [stdout] 102 | |             &bounding_box,
[INFO] [stdout] 103 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:100:49
[INFO] [stdout]     |
[INFO] [stdout] 100 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 101 | |             &other_bounding_boxes,
[INFO] [stdout] 102 | |             &bounding_box,
[INFO] [stdout] 103 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 168 |       fn union(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 168 |       fn union(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                      -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 88  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 89  | |             &bounding_boxes,
[INFO] [stdout] 90  | |             &other_bounding_box,
[INFO] [stdout] 91  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 74  |       fn difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 103 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 104 | |                 &other_bounding_boxes,
[INFO] [stdout] 105 | |                 &bounding_box,
[INFO] [stdout] 106 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 104 | |                 &other_bounding_boxes,
[INFO] [stdout] 105 | |                 &bounding_box,
[INFO] [stdout] 106 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 88  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 89  | |             &bounding_boxes,
[INFO] [stdout] 90  | |             &other_bounding_box,
[INFO] [stdout] 91  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 74  |       fn difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 103 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 104 | |                 &other_bounding_boxes,
[INFO] [stdout] 105 | |                 &bounding_box,
[INFO] [stdout] 106 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 104 | |                 &other_bounding_boxes,
[INFO] [stdout] 105 | |                 &bounding_box,
[INFO] [stdout] 106 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:185:43
[INFO] [stdout]     |
[INFO] [stdout] 171 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 185 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 186 | |             &bounding_boxes,
[INFO] [stdout] 187 | |             &other_bounding_box,
[INFO] [stdout] 188 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:185:43
[INFO] [stdout]     |
[INFO] [stdout] 185 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 186 | |             &bounding_boxes,
[INFO] [stdout] 187 | |             &other_bounding_box,
[INFO] [stdout] 188 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/difference.rs:195:36
[INFO] [stdout]     |
[INFO] [stdout] 194 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 195 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 200 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 201 | |                 &other_bounding_boxes,
[INFO] [stdout] 202 | |                 &bounding_box,
[INFO] [stdout] 203 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 251 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 200 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 201 | |                 &other_bounding_boxes,
[INFO] [stdout] 202 | |                 &bounding_box,
[INFO] [stdout] 203 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 200 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 201 | |                 &other_bounding_boxes,
[INFO] [stdout] 202 | |                 &bounding_box,
[INFO] [stdout] 203 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 170 |       fn difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:281:43
[INFO] [stdout]     |
[INFO] [stdout] 267 |       fn difference(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 281 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 282 | |             &bounding_boxes,
[INFO] [stdout] 283 | |             &other_bounding_box,
[INFO] [stdout] 284 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:281:43
[INFO] [stdout]     |
[INFO] [stdout] 281 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 282 | |             &bounding_boxes,
[INFO] [stdout] 283 | |             &other_bounding_box,
[INFO] [stdout] 284 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/difference.rs:291:36
[INFO] [stdout]     |
[INFO] [stdout] 290 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 291 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 346 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |       fn difference(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:194:36
[INFO] [stdout]     |
[INFO] [stdout] 193 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 194 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 199 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 200 | |                 &other_bounding_boxes,
[INFO] [stdout] 201 | |                 &bounding_box,
[INFO] [stdout] 202 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 249 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |       fn difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 199 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 200 | |                 &other_bounding_boxes,
[INFO] [stdout] 201 | |                 &bounding_box,
[INFO] [stdout] 202 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 200 | |                 &other_bounding_boxes,
[INFO] [stdout] 201 | |                 &bounding_box,
[INFO] [stdout] 202 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:377:43
[INFO] [stdout]     |
[INFO] [stdout] 363 |       fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 377 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 378 | |             &bounding_boxes,
[INFO] [stdout] 379 | |             &other_bounding_box,
[INFO] [stdout] 380 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/difference.rs:377:43
[INFO] [stdout]     |
[INFO] [stdout] 363 |       fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 377 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 378 | |             &bounding_boxes,
[INFO] [stdout] 379 | |             &other_bounding_box,
[INFO] [stdout] 380 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/difference.rs:377:43
[INFO] [stdout]     |
[INFO] [stdout] 377 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 378 | |             &bounding_boxes,
[INFO] [stdout] 379 | |             &other_bounding_box,
[INFO] [stdout] 380 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:281:43
[INFO] [stdout]     |
[INFO] [stdout] 267 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 281 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 282 | |             &bounding_boxes,
[INFO] [stdout] 283 | |             &other_bounding_box,
[INFO] [stdout] 284 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:281:43
[INFO] [stdout]     |
[INFO] [stdout] 281 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 282 | |             &bounding_boxes,
[INFO] [stdout] 283 | |             &other_bounding_box,
[INFO] [stdout] 284 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:291:36
[INFO] [stdout]     |
[INFO] [stdout] 290 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 291 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 347 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:378:43
[INFO] [stdout]     |
[INFO] [stdout] 364 |       fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 378 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 379 | |             &bounding_boxes,
[INFO] [stdout] 380 | |             &other_bounding_box,
[INFO] [stdout] 381 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:378:43
[INFO] [stdout]     |
[INFO] [stdout] 364 |       fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 378 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 379 | |             &bounding_boxes,
[INFO] [stdout] 380 | |             &other_bounding_box,
[INFO] [stdout] 381 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:378:43
[INFO] [stdout]     |
[INFO] [stdout] 378 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 379 | |             &bounding_boxes,
[INFO] [stdout] 380 | |             &other_bounding_box,
[INFO] [stdout] 381 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:114:45
[INFO] [stdout]     |
[INFO] [stdout] 100 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 114 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 115 | |             &bounding_boxes,
[INFO] [stdout] 116 | |             &other_bounding_box,
[INFO] [stdout] 117 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:114:45
[INFO] [stdout]     |
[INFO] [stdout] 114 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 115 | |             &bounding_boxes,
[INFO] [stdout] 116 | |             &other_bounding_box,
[INFO] [stdout] 117 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:122:36
[INFO] [stdout]     |
[INFO] [stdout] 121 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 122 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 127 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 128 | |                 &other_bounding_boxes,
[INFO] [stdout] 129 | |                 &bounding_box,
[INFO] [stdout] 130 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 178 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 127 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 128 | |                 &other_bounding_boxes,
[INFO] [stdout] 129 | |                 &bounding_box,
[INFO] [stdout] 130 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 128 | |                 &other_bounding_boxes,
[INFO] [stdout] 129 | |                 &bounding_box,
[INFO] [stdout] 130 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:84:45
[INFO] [stdout]     |
[INFO] [stdout] 84  |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 85  | |             &bounding_boxes,
[INFO] [stdout] 86  | |             &other_bounding_box,
[INFO] [stdout] 87  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:239:45
[INFO] [stdout]     |
[INFO] [stdout] 225 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 239 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 240 | |             &bounding_boxes,
[INFO] [stdout] 241 | |             &other_bounding_box,
[INFO] [stdout] 242 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:239:45
[INFO] [stdout]     |
[INFO] [stdout] 225 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 239 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 240 | |             &bounding_boxes,
[INFO] [stdout] 241 | |             &other_bounding_box,
[INFO] [stdout] 242 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/intersection.rs:239:45
[INFO] [stdout]     |
[INFO] [stdout] 239 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 240 | |             &bounding_boxes,
[INFO] [stdout] 241 | |             &other_bounding_box,
[INFO] [stdout] 242 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 70  |       fn intersection(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 102 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 103 | |                 &other_bounding_boxes,
[INFO] [stdout] 104 | |                 &bounding_box,
[INFO] [stdout] 105 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 103 | |                 &other_bounding_boxes,
[INFO] [stdout] 104 | |                 &bounding_box,
[INFO] [stdout] 105 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:221:45
[INFO] [stdout]     |
[INFO] [stdout] 207 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 221 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 222 | |             &bounding_boxes,
[INFO] [stdout] 223 | |             &other_bounding_box,
[INFO] [stdout] 224 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:221:45
[INFO] [stdout]     |
[INFO] [stdout] 221 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 222 | |             &bounding_boxes,
[INFO] [stdout] 223 | |             &other_bounding_box,
[INFO] [stdout] 224 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:229:36
[INFO] [stdout]     |
[INFO] [stdout] 228 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 229 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 234 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 235 | |                 &other_bounding_boxes,
[INFO] [stdout] 236 | |                 &bounding_box,
[INFO] [stdout] 237 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 285 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 234 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 235 | |                 &other_bounding_boxes,
[INFO] [stdout] 236 | |                 &bounding_box,
[INFO] [stdout] 237 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 235 | |                 &other_bounding_boxes,
[INFO] [stdout] 236 | |                 &bounding_box,
[INFO] [stdout] 237 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:316:45
[INFO] [stdout]     |
[INFO] [stdout] 302 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 316 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 317 | |             &bounding_boxes,
[INFO] [stdout] 318 | |             &other_bounding_box,
[INFO] [stdout] 319 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:86:43
[INFO] [stdout]     |
[INFO] [stdout] 86  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 87  | |             &bounding_boxes,
[INFO] [stdout] 88  | |             &other_bounding_box,
[INFO] [stdout] 89  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:316:45
[INFO] [stdout]     |
[INFO] [stdout] 302 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 316 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 317 | |             &bounding_boxes,
[INFO] [stdout] 318 | |             &other_bounding_box,
[INFO] [stdout] 319 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout] 70  |       fn symmetric_difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 102 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 103 | |             &other_bounding_boxes,
[INFO] [stdout] 104 | |             &bounding_box,
[INFO] [stdout] 105 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:316:45
[INFO] [stdout]     |
[INFO] [stdout] 316 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 317 | |             &bounding_boxes,
[INFO] [stdout] 318 | |             &other_bounding_box,
[INFO] [stdout] 319 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout] 102 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 103 | |             &other_bounding_boxes,
[INFO] [stdout] 104 | |             &bounding_box,
[INFO] [stdout] 105 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 176 |           other: &Multisegment<Scalar>,
[INFO] [stdout]     |           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:205:36
[INFO] [stdout]     |
[INFO] [stdout] 180 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 205 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 261 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 175 |           self,
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `self` is a reference that is only valid in the method body
[INFO] [stdout]     |           has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:86:43
[INFO] [stdout]     |
[INFO] [stdout] 86  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 87  | |             &bounding_boxes,
[INFO] [stdout] 88  | |             &other_bounding_box,
[INFO] [stdout] 89  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout] 70  |       fn symmetric_difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 102 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 103 | |             &other_bounding_boxes,
[INFO] [stdout] 104 | |             &bounding_box,
[INFO] [stdout] 105 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout] 102 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 103 | |             &other_bounding_boxes,
[INFO] [stdout] 104 | |             &bounding_box,
[INFO] [stdout] 105 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:294:43
[INFO] [stdout]     |
[INFO] [stdout] 278 |       fn symmetric_difference(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 294 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 295 | |             &bounding_boxes,
[INFO] [stdout] 296 | |             &other_bounding_box,
[INFO] [stdout] 297 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:294:43
[INFO] [stdout]     |
[INFO] [stdout] 278 |       fn symmetric_difference(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 294 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 295 | |             &bounding_boxes,
[INFO] [stdout] 296 | |             &other_bounding_box,
[INFO] [stdout] 297 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/symmetric_difference.rs:294:43
[INFO] [stdout]     |
[INFO] [stdout] 294 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 295 | |             &bounding_boxes,
[INFO] [stdout] 296 | |             &other_bounding_box,
[INFO] [stdout] 297 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:191:43
[INFO] [stdout]     |
[INFO] [stdout] 174 |       fn symmetric_difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 191 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 192 | |             &bounding_boxes,
[INFO] [stdout] 193 | |             &other_bounding_box,
[INFO] [stdout] 194 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:191:43
[INFO] [stdout]     |
[INFO] [stdout] 191 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 192 | |             &bounding_boxes,
[INFO] [stdout] 193 | |             &other_bounding_box,
[INFO] [stdout] 194 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:202:36
[INFO] [stdout]     |
[INFO] [stdout] 177 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 202 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 206 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 207 | |             &other_bounding_boxes,
[INFO] [stdout] 208 | |             &bounding_box,
[INFO] [stdout] 209 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 258 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:206:49
[INFO] [stdout]     |
[INFO] [stdout] 174 |       fn symmetric_difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 206 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 207 | |             &other_bounding_boxes,
[INFO] [stdout] 208 | |             &bounding_box,
[INFO] [stdout] 209 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:206:49
[INFO] [stdout]     |
[INFO] [stdout] 206 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 207 | |             &other_bounding_boxes,
[INFO] [stdout] 208 | |             &bounding_box,
[INFO] [stdout] 209 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/union.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 88  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 89  | |             &bounding_boxes,
[INFO] [stdout] 90  | |             &other_bounding_box,
[INFO] [stdout] 91  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/union.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 72  |       fn union(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 104 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 105 | |             &other_bounding_boxes,
[INFO] [stdout] 106 | |             &bounding_box,
[INFO] [stdout] 107 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/union.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 105 | |             &other_bounding_boxes,
[INFO] [stdout] 106 | |             &bounding_box,
[INFO] [stdout] 107 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:291:43
[INFO] [stdout]     |
[INFO] [stdout] 275 |       fn symmetric_difference(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 291 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 292 | |             &bounding_boxes,
[INFO] [stdout] 293 | |             &other_bounding_box,
[INFO] [stdout] 294 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:291:43
[INFO] [stdout]     |
[INFO] [stdout] 275 |       fn symmetric_difference(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 291 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 292 | |             &bounding_boxes,
[INFO] [stdout] 293 | |             &other_bounding_box,
[INFO] [stdout] 294 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:291:43
[INFO] [stdout]     |
[INFO] [stdout] 291 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 292 | |             &bounding_boxes,
[INFO] [stdout] 293 | |             &other_bounding_box,
[INFO] [stdout] 294 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/union.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 177 |       fn union(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                      -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/union.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 88  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 89  | |             &bounding_boxes,
[INFO] [stdout] 90  | |             &other_bounding_box,
[INFO] [stdout] 91  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/contour/union.rs:205:36
[INFO] [stdout]     |
[INFO] [stdout] 180 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 205 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 262 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 72  |       fn union(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 104 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 105 | |             &other_bounding_boxes,
[INFO] [stdout] 106 | |             &bounding_box,
[INFO] [stdout] 107 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/contour/union.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 177 |       fn union(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Contour<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 105 | |             &other_bounding_boxes,
[INFO] [stdout] 106 | |             &bounding_box,
[INFO] [stdout] 107 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/contour/union.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 177 |       fn union(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                      -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:205:36
[INFO] [stdout]     |
[INFO] [stdout] 180 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 205 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 262 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 177 |       fn union(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/difference.rs:113:36
[INFO] [stdout]     |
[INFO] [stdout] 112 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 113 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 117 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________-
[INFO] [stdout] 118 | |             &other_bounding_boxes,
[INFO] [stdout] 119 | |             &other_bounding_box,
[INFO] [stdout] 120 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 147 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/difference.rs:117:46
[INFO] [stdout]     |
[INFO] [stdout] 106 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 117 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 118 | |             &other_bounding_boxes,
[INFO] [stdout] 119 | |             &other_bounding_box,
[INFO] [stdout] 120 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'1` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/difference.rs:117:46
[INFO] [stdout]     |
[INFO] [stdout] 117 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 118 | |             &other_bounding_boxes,
[INFO] [stdout] 119 | |             &other_bounding_box,
[INFO] [stdout] 120 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:81:13
[INFO] [stdout]     |
[INFO] [stdout] 81  |             to_boxes_have_common_area(&bounding_boxes, &other_bounding_box);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:552:39
[INFO] [stdout]     |
[INFO] [stdout] 552 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:92:46
[INFO] [stdout]     |
[INFO] [stdout] 69  |       fn difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 92  |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 93  | |             &other_bounding_boxes,
[INFO] [stdout] 94  | |             &bounding_box,
[INFO] [stdout] 95  | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:92:46
[INFO] [stdout]     |
[INFO] [stdout] 92  |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 93  | |             &other_bounding_boxes,
[INFO] [stdout] 94  | |             &bounding_box,
[INFO] [stdout] 95  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:116:36
[INFO] [stdout]     |
[INFO] [stdout] 115 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 116 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 121 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 122 | |                 &other_bounding_boxes,
[INFO] [stdout] 123 | |                 &bounding_box,
[INFO] [stdout] 124 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 161 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |       fn intersection(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Polygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 121 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 122 | |                 &other_bounding_boxes,
[INFO] [stdout] 123 | |                 &bounding_box,
[INFO] [stdout] 124 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |       fn intersection(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 121 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 122 | |                 &other_bounding_boxes,
[INFO] [stdout] 123 | |                 &bounding_box,
[INFO] [stdout] 124 | |             );
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________`other` escapes the method body here
[INFO] [stdout]     |               argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 122 | |                 &other_bounding_boxes,
[INFO] [stdout] 123 | |                 &bounding_box,
[INFO] [stdout] 124 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                   ----
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                   has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 168 |             to_boxes_have_common_area(&bounding_boxes, &other_bounding_box);
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:552:39
[INFO] [stdout]     |
[INFO] [stdout] 552 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                         -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 168 |             to_boxes_have_common_area(&bounding_boxes, &other_bounding_box);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `other` escapes the method body here
[INFO] [stdout]     |             argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:552:39
[INFO] [stdout]     |
[INFO] [stdout] 552 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/difference.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             to_boxes_have_common_area(&bounding_boxes, &other_bounding_box);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:552:39
[INFO] [stdout]     |
[INFO] [stdout] 552 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:74:40
[INFO] [stdout]     |
[INFO] [stdout] 74  |           let common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 75  | |             &bounding_boxes,
[INFO] [stdout] 76  | |             &other_bounding_box,
[INFO] [stdout] 77  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:86:46
[INFO] [stdout]     |
[INFO] [stdout] 63  |       fn intersection(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 86  |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 87  | |             &other_bounding_boxes,
[INFO] [stdout] 88  | |             &bounding_box,
[INFO] [stdout] 89  | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:86:46
[INFO] [stdout]     |
[INFO] [stdout] 86  |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 87  | |             &other_bounding_boxes,
[INFO] [stdout] 88  | |             &bounding_box,
[INFO] [stdout] 89  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:188:36
[INFO] [stdout]     |
[INFO] [stdout] 187 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 188 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 192 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________-
[INFO] [stdout] 193 | |             &other_bounding_boxes,
[INFO] [stdout] 194 | |             &bounding_box,
[INFO] [stdout] 195 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 227 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:192:46
[INFO] [stdout]     |
[INFO] [stdout] 181 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Polygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 192 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 193 | |             &other_bounding_boxes,
[INFO] [stdout] 194 | |             &bounding_box,
[INFO] [stdout] 195 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:192:46
[INFO] [stdout]     |
[INFO] [stdout] 181 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 192 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 193 | |             &other_bounding_boxes,
[INFO] [stdout] 194 | |             &bounding_box,
[INFO] [stdout] 195 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:192:46
[INFO] [stdout]     |
[INFO] [stdout] 192 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 193 | |             &other_bounding_boxes,
[INFO] [stdout] 194 | |             &bounding_box,
[INFO] [stdout] 195 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:255:36
[INFO] [stdout]     |
[INFO] [stdout] 254 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 255 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 260 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 261 | |                 &other_bounding_boxes,
[INFO] [stdout] 262 | |                 &bounding_box,
[INFO] [stdout] 263 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 300 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |       fn intersection(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Polygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 260 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 261 | |                 &other_bounding_boxes,
[INFO] [stdout] 262 | |                 &bounding_box,
[INFO] [stdout] 263 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |       fn intersection(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 260 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 261 | |                 &other_bounding_boxes,
[INFO] [stdout] 262 | |                 &bounding_box,
[INFO] [stdout] 263 | |             );
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________`other` escapes the method body here
[INFO] [stdout]     |               argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 261 | |                 &other_bounding_boxes,
[INFO] [stdout] 262 | |                 &bounding_box,
[INFO] [stdout] 263 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:164:45
[INFO] [stdout]     |
[INFO] [stdout] 150 |       fn intersection(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 164 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 165 | |             &bounding_boxes,
[INFO] [stdout] 166 | |             &other_bounding_box,
[INFO] [stdout] 167 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:164:45
[INFO] [stdout]     |
[INFO] [stdout] 164 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 165 | |             &bounding_boxes,
[INFO] [stdout] 166 | |             &other_bounding_box,
[INFO] [stdout] 167 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:172:36
[INFO] [stdout]     |
[INFO] [stdout] 171 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 172 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 177 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 178 | |                 &other_bounding_boxes,
[INFO] [stdout] 179 | |                 &bounding_box,
[INFO] [stdout] 180 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 228 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |       fn intersection(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 177 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 178 | |                 &other_bounding_boxes,
[INFO] [stdout] 179 | |                 &bounding_box,
[INFO] [stdout] 180 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 178 | |                 &other_bounding_boxes,
[INFO] [stdout] 179 | |                 &bounding_box,
[INFO] [stdout] 180 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:260:45
[INFO] [stdout]     |
[INFO] [stdout] 246 |       fn intersection(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 260 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 261 | |             &bounding_boxes,
[INFO] [stdout] 262 | |             &other_bounding_box,
[INFO] [stdout] 263 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/symmetric_difference.rs:123:36
[INFO] [stdout]     |
[INFO] [stdout] 113 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] ...
[INFO] [stdout] 123 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 127 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 128 | |             &other_bounding_boxes,
[INFO] [stdout] 129 | |             &other_bounding_box,
[INFO] [stdout] 130 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 167 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/symmetric_difference.rs:127:49
[INFO] [stdout]     |
[INFO] [stdout] 109 |           other: &Multipolygon<Scalar>,
[INFO] [stdout]     |           -----  - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 127 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 128 | |             &other_bounding_boxes,
[INFO] [stdout] 129 | |             &other_bounding_box,
[INFO] [stdout] 130 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'1` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/symmetric_difference.rs:127:49
[INFO] [stdout]     |
[INFO] [stdout] 127 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 128 | |             &other_bounding_boxes,
[INFO] [stdout] 129 | |             &other_bounding_box,
[INFO] [stdout] 130 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:260:45
[INFO] [stdout]     |
[INFO] [stdout] 260 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 261 | |             &bounding_boxes,
[INFO] [stdout] 262 | |             &other_bounding_box,
[INFO] [stdout] 263 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:268:36
[INFO] [stdout]     |
[INFO] [stdout] 267 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 268 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 273 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 274 | |                 &other_bounding_boxes,
[INFO] [stdout] 275 | |                 &bounding_box,
[INFO] [stdout] 276 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 324 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |       fn intersection(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 273 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 274 | |                 &other_bounding_boxes,
[INFO] [stdout] 275 | |                 &bounding_box,
[INFO] [stdout] 276 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 274 | |                 &other_bounding_boxes,
[INFO] [stdout] 275 | |                 &bounding_box,
[INFO] [stdout] 276 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:351:40
[INFO] [stdout]     |
[INFO] [stdout] 340 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 351 |           let common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 352 | |             &bounding_boxes,
[INFO] [stdout] 353 | |             &other_bounding_box,
[INFO] [stdout] 354 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:351:40
[INFO] [stdout]     |
[INFO] [stdout] 340 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 351 |           let common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 352 | |             &bounding_boxes,
[INFO] [stdout] 353 | |             &other_bounding_box,
[INFO] [stdout] 354 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:351:40
[INFO] [stdout]     |
[INFO] [stdout] 351 |           let common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 352 | |             &bounding_boxes,
[INFO] [stdout] 353 | |             &other_bounding_box,
[INFO] [stdout] 354 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `other_polygons` because it is borrowed
[INFO] [stdout]    --> src/geometries/polygon/symmetric_difference.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] ...
[INFO] [stdout] 123 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      -------------- borrow of `other_polygons` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 127 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 128 | |             &other_bounding_boxes,
[INFO] [stdout] 129 | |             &other_bounding_box,
[INFO] [stdout] 130 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 135 |                   other_polygons.into_iter().cloned().collect::<Vec<_>>();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ move out of `other_polygons` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:418:45
[INFO] [stdout]     |
[INFO] [stdout] 404 |       fn intersection(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 418 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 419 | |             &bounding_boxes,
[INFO] [stdout] 420 | |             &other_bounding_box,
[INFO] [stdout] 421 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:418:45
[INFO] [stdout]     |
[INFO] [stdout] 404 |       fn intersection(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 418 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 419 | |             &bounding_boxes,
[INFO] [stdout] 420 | |             &other_bounding_box,
[INFO] [stdout] 421 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/intersection.rs:418:45
[INFO] [stdout]     |
[INFO] [stdout] 418 |           let common_continuum_polygons_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 419 | |             &bounding_boxes,
[INFO] [stdout] 420 | |             &other_bounding_box,
[INFO] [stdout] 421 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/union.rs:117:36
[INFO] [stdout]     |
[INFO] [stdout] 107 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] ...
[INFO] [stdout] 117 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 121 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 122 | |             &other_bounding_boxes,
[INFO] [stdout] 123 | |             &other_bounding_box,
[INFO] [stdout] 124 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 162 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/union.rs:121:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |       fn union(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                      -----  - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 121 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 122 | |             &other_bounding_boxes,
[INFO] [stdout] 123 | |             &other_bounding_box,
[INFO] [stdout] 124 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'1` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/union.rs:121:49
[INFO] [stdout]     |
[INFO] [stdout] 121 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 122 | |             &other_bounding_boxes,
[INFO] [stdout] 123 | |             &other_bounding_box,
[INFO] [stdout] 124 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `other_polygons` because it is borrowed
[INFO] [stdout]    --> src/geometries/polygon/union.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] ...
[INFO] [stdout] 117 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      -------------- borrow of `other_polygons` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 121 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 122 | |             &other_bounding_boxes,
[INFO] [stdout] 123 | |             &other_bounding_box,
[INFO] [stdout] 124 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 129 |                   other_polygons.into_iter().cloned().collect::<Vec<_>>();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ move out of `other_polygons` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:84:43
[INFO] [stdout]     |
[INFO] [stdout] 84  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 85  | |             &bounding_boxes,
[INFO] [stdout] 86  | |             &other_bounding_box,
[INFO] [stdout] 87  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:171:49
[INFO] [stdout]     |
[INFO] [stdout] 161 |       fn difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 171 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 172 | |             &other_segments
[INFO] [stdout] 173 | |                 .iter()
[INFO] [stdout] 174 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 175 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 176 | |             &bounding_box,
[INFO] [stdout] 177 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:100:49
[INFO] [stdout]     |
[INFO] [stdout] 68  |       fn symmetric_difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 100 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 101 | |             &other_bounding_boxes,
[INFO] [stdout] 102 | |             &bounding_box,
[INFO] [stdout] 103 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:171:49
[INFO] [stdout]     |
[INFO] [stdout] 161 |       fn difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 171 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 172 | |             &other_segments
[INFO] [stdout] 173 | |                 .iter()
[INFO] [stdout] 174 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 175 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 176 | |             &bounding_box,
[INFO] [stdout] 177 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:100:49
[INFO] [stdout]     |
[INFO] [stdout] 100 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 101 | |             &other_bounding_boxes,
[INFO] [stdout] 102 | |             &bounding_box,
[INFO] [stdout] 103 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/difference.rs:171:49
[INFO] [stdout]     |
[INFO] [stdout] 171 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 172 | |             &other_segments
[INFO] [stdout] 173 | |                 .iter()
[INFO] [stdout] 174 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 175 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 176 | |             &bounding_box,
[INFO] [stdout] 177 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/difference.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 170 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 171 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 172 | |             &other_segments
[INFO] [stdout]     | |              ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] 173 | |                 .iter()
[INFO] [stdout] 174 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 175 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 176 | |             &bounding_box,
[INFO] [stdout] 177 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 207 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/difference.rs:234:36
[INFO] [stdout]     |
[INFO] [stdout] 233 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 234 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 239 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 240 | |                 &other_bounding_boxes,
[INFO] [stdout] 241 | |                 &bounding_box,
[INFO] [stdout] 242 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 273 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 167 |       fn symmetric_difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 183 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 184 | |             &bounding_boxes,
[INFO] [stdout] 185 | |             &other_bounding_box,
[INFO] [stdout] 186 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 167 |       fn symmetric_difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 183 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 184 | |             &bounding_boxes,
[INFO] [stdout] 185 | |             &other_bounding_box,
[INFO] [stdout] 186 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 239 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 240 | |                 &other_bounding_boxes,
[INFO] [stdout] 241 | |                 &bounding_box,
[INFO] [stdout] 242 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/symmetric_difference.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 183 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 184 | |             &bounding_boxes,
[INFO] [stdout] 185 | |             &other_bounding_box,
[INFO] [stdout] 186 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 239 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 240 | |                 &other_bounding_boxes,
[INFO] [stdout] 241 | |                 &bounding_box,
[INFO] [stdout] 242 | |             );
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________`other` escapes the method body here
[INFO] [stdout]     |               argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/difference.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 240 | |                 &other_bounding_boxes,
[INFO] [stdout] 241 | |                 &bounding_box,
[INFO] [stdout] 242 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:298:49
[INFO] [stdout]     |
[INFO] [stdout] 288 |       fn difference(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 298 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 299 | |             &other_segments
[INFO] [stdout] 300 | |                 .iter()
[INFO] [stdout] 301 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 302 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 303 | |             &bounding_box,
[INFO] [stdout] 304 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:298:49
[INFO] [stdout]     |
[INFO] [stdout] 288 |       fn difference(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 298 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 299 | |             &other_segments
[INFO] [stdout] 300 | |                 .iter()
[INFO] [stdout] 301 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 302 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 303 | |             &bounding_box,
[INFO] [stdout] 304 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/difference.rs:298:49
[INFO] [stdout]     |
[INFO] [stdout] 298 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 299 | |             &other_segments
[INFO] [stdout] 300 | |                 .iter()
[INFO] [stdout] 301 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 302 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 303 | |             &bounding_box,
[INFO] [stdout] 304 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/difference.rs:299:14
[INFO] [stdout]     |
[INFO] [stdout] 297 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 298 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 299 | |             &other_segments
[INFO] [stdout]     | |              ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] 300 | |                 .iter()
[INFO] [stdout] 301 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 302 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 303 | |             &bounding_box,
[INFO] [stdout] 304 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 334 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:84:43
[INFO] [stdout]     |
[INFO] [stdout] 84  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 85  | |             &bounding_boxes,
[INFO] [stdout] 86  | |             &other_bounding_box,
[INFO] [stdout] 87  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:100:49
[INFO] [stdout]     |
[INFO] [stdout] 68  |       fn union(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 100 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 101 | |             &other_bounding_boxes,
[INFO] [stdout] 102 | |             &bounding_box,
[INFO] [stdout] 103 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:100:49
[INFO] [stdout]     |
[INFO] [stdout] 100 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 101 | |             &other_bounding_boxes,
[INFO] [stdout] 102 | |             &bounding_box,
[INFO] [stdout] 103 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 168 |       fn union(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Multipolygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 168 |       fn union(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                      -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multipolygon/union.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/intersection.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 126 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 127 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 132 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 133 | |                 &other_bounding_boxes,
[INFO] [stdout] 134 | |                 &bounding_box,
[INFO] [stdout] 135 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 172 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/intersection.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 132 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 133 | |                 &other_bounding_boxes,
[INFO] [stdout] 134 | |                 &bounding_box,
[INFO] [stdout] 135 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/intersection.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 132 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 133 | |                 &other_bounding_boxes,
[INFO] [stdout] 134 | |                 &bounding_box,
[INFO] [stdout] 135 | |             );
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________`other` escapes the method body here
[INFO] [stdout]     |               argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/intersection.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 133 | |                 &other_bounding_boxes,
[INFO] [stdout] 134 | |                 &bounding_box,
[INFO] [stdout] 135 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 88  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 89  | |             &bounding_boxes,
[INFO] [stdout] 90  | |             &other_bounding_box,
[INFO] [stdout] 91  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 74  |       fn difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 103 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 104 | |                 &other_bounding_boxes,
[INFO] [stdout] 105 | |                 &bounding_box,
[INFO] [stdout] 106 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 104 | |                 &other_bounding_boxes,
[INFO] [stdout] 105 | |                 &bounding_box,
[INFO] [stdout] 106 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 170 |       fn difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:151:36
[INFO] [stdout]     |
[INFO] [stdout] 141 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 151 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 155 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 156 | |             &other_bounding_boxes,
[INFO] [stdout] 157 | |             &bounding_box,
[INFO] [stdout] 158 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 197 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:155:49
[INFO] [stdout]     |
[INFO] [stdout] 138 |       fn symmetric_difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 155 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 156 | |             &other_bounding_boxes,
[INFO] [stdout] 157 | |             &bounding_box,
[INFO] [stdout] 158 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:155:49
[INFO] [stdout]     |
[INFO] [stdout] 138 |       fn symmetric_difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 155 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 156 | |             &other_bounding_boxes,
[INFO] [stdout] 157 | |             &bounding_box,
[INFO] [stdout] 158 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:155:49
[INFO] [stdout]     |
[INFO] [stdout] 155 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 156 | |             &other_bounding_boxes,
[INFO] [stdout] 157 | |             &bounding_box,
[INFO] [stdout] 158 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 184 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 185 | |             &bounding_boxes,
[INFO] [stdout] 186 | |             &other_bounding_box,
[INFO] [stdout] 187 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:194:36
[INFO] [stdout]     |
[INFO] [stdout] 193 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 194 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 199 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 200 | |                 &other_bounding_boxes,
[INFO] [stdout] 201 | |                 &bounding_box,
[INFO] [stdout] 202 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 249 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |       fn difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 199 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 200 | |                 &other_bounding_boxes,
[INFO] [stdout] 201 | |                 &bounding_box,
[INFO] [stdout] 202 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 200 | |                 &other_bounding_boxes,
[INFO] [stdout] 201 | |                 &bounding_box,
[INFO] [stdout] 202 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:233:36
[INFO] [stdout]     |
[INFO] [stdout] 223 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 233 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 237 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 238 | |             &other_bounding_boxes,
[INFO] [stdout] 239 | |             &bounding_box,
[INFO] [stdout] 240 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 279 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:237:49
[INFO] [stdout]     |
[INFO] [stdout] 218 |           self,
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `self` is a reference that is only valid in the method body
[INFO] [stdout]     |           has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 237 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 238 | |             &other_bounding_boxes,
[INFO] [stdout] 239 | |             &bounding_box,
[INFO] [stdout] 240 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:237:49
[INFO] [stdout]     |
[INFO] [stdout] 219 |           other: &Multisegment<Scalar>,
[INFO] [stdout]     |           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 237 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 238 | |             &other_bounding_boxes,
[INFO] [stdout] 239 | |             &bounding_box,
[INFO] [stdout] 240 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:237:49
[INFO] [stdout]     |
[INFO] [stdout] 237 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 238 | |             &other_bounding_boxes,
[INFO] [stdout] 239 | |             &bounding_box,
[INFO] [stdout] 240 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:281:43
[INFO] [stdout]     |
[INFO] [stdout] 267 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 281 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 282 | |             &bounding_boxes,
[INFO] [stdout] 283 | |             &other_bounding_box,
[INFO] [stdout] 284 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:281:43
[INFO] [stdout]     |
[INFO] [stdout] 281 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 282 | |             &bounding_boxes,
[INFO] [stdout] 283 | |             &other_bounding_box,
[INFO] [stdout] 284 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:291:36
[INFO] [stdout]     |
[INFO] [stdout] 290 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 291 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 347 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 296 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 297 | |                 &other_bounding_boxes,
[INFO] [stdout] 298 | |                 &bounding_box,
[INFO] [stdout] 299 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:378:43
[INFO] [stdout]     |
[INFO] [stdout] 364 |       fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 378 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 379 | |             &bounding_boxes,
[INFO] [stdout] 380 | |             &other_bounding_box,
[INFO] [stdout] 381 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:378:43
[INFO] [stdout]     |
[INFO] [stdout] 364 |       fn difference(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 378 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 379 | |             &bounding_boxes,
[INFO] [stdout] 380 | |             &other_bounding_box,
[INFO] [stdout] 381 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/difference.rs:378:43
[INFO] [stdout]     |
[INFO] [stdout] 378 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 379 | |             &bounding_boxes,
[INFO] [stdout] 380 | |             &other_bounding_box,
[INFO] [stdout] 381 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:84:45
[INFO] [stdout]     |
[INFO] [stdout] 84  |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 85  | |             &bounding_boxes,
[INFO] [stdout] 86  | |             &other_bounding_box,
[INFO] [stdout] 87  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 70  |       fn intersection(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 102 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 103 | |                 &other_bounding_boxes,
[INFO] [stdout] 104 | |                 &bounding_box,
[INFO] [stdout] 105 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 103 | |                 &other_bounding_boxes,
[INFO] [stdout] 104 | |                 &bounding_box,
[INFO] [stdout] 105 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:221:45
[INFO] [stdout]     |
[INFO] [stdout] 207 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 221 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 222 | |             &bounding_boxes,
[INFO] [stdout] 223 | |             &other_bounding_box,
[INFO] [stdout] 224 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:221:45
[INFO] [stdout]     |
[INFO] [stdout] 221 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 222 | |             &bounding_boxes,
[INFO] [stdout] 223 | |             &other_bounding_box,
[INFO] [stdout] 224 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:229:36
[INFO] [stdout]     |
[INFO] [stdout] 228 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 229 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 234 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 235 | |                 &other_bounding_boxes,
[INFO] [stdout] 236 | |                 &bounding_box,
[INFO] [stdout] 237 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 285 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 234 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 235 | |                 &other_bounding_boxes,
[INFO] [stdout] 236 | |                 &bounding_box,
[INFO] [stdout] 237 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 235 | |                 &other_bounding_boxes,
[INFO] [stdout] 236 | |                 &bounding_box,
[INFO] [stdout] 237 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:316:45
[INFO] [stdout]     |
[INFO] [stdout] 302 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 316 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 317 | |             &bounding_boxes,
[INFO] [stdout] 318 | |             &other_bounding_box,
[INFO] [stdout] 319 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:316:45
[INFO] [stdout]     |
[INFO] [stdout] 302 |       fn intersection(self, other: &Polygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 316 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 317 | |             &bounding_boxes,
[INFO] [stdout] 318 | |             &other_bounding_box,
[INFO] [stdout] 319 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/intersection.rs:316:45
[INFO] [stdout]     |
[INFO] [stdout] 316 |           let common_continuum_segments_ids = to_boxes_ids_with_common_continuum(
[INFO] [stdout]     |  _____________________________________________^
[INFO] [stdout] 317 | |             &bounding_boxes,
[INFO] [stdout] 318 | |             &other_bounding_box,
[INFO] [stdout] 319 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:86:43
[INFO] [stdout]     |
[INFO] [stdout] 86  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 87  | |             &bounding_boxes,
[INFO] [stdout] 88  | |             &other_bounding_box,
[INFO] [stdout] 89  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout] 70  |       fn symmetric_difference(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 102 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 103 | |             &other_bounding_boxes,
[INFO] [stdout] 104 | |             &bounding_box,
[INFO] [stdout] 105 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout] 102 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 103 | |             &other_bounding_boxes,
[INFO] [stdout] 104 | |             &bounding_box,
[INFO] [stdout] 105 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:191:43
[INFO] [stdout]     |
[INFO] [stdout] 174 |       fn symmetric_difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 191 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 192 | |             &bounding_boxes,
[INFO] [stdout] 193 | |             &other_bounding_box,
[INFO] [stdout] 194 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:191:43
[INFO] [stdout]     |
[INFO] [stdout] 191 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 192 | |             &bounding_boxes,
[INFO] [stdout] 193 | |             &other_bounding_box,
[INFO] [stdout] 194 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:202:36
[INFO] [stdout]     |
[INFO] [stdout] 177 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 202 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 206 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 207 | |             &other_bounding_boxes,
[INFO] [stdout] 208 | |             &bounding_box,
[INFO] [stdout] 209 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 258 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:206:49
[INFO] [stdout]     |
[INFO] [stdout] 174 |       fn symmetric_difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 206 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 207 | |             &other_bounding_boxes,
[INFO] [stdout] 208 | |             &bounding_box,
[INFO] [stdout] 209 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:206:49
[INFO] [stdout]     |
[INFO] [stdout] 206 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 207 | |             &other_bounding_boxes,
[INFO] [stdout] 208 | |             &bounding_box,
[INFO] [stdout] 209 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:291:43
[INFO] [stdout]     |
[INFO] [stdout] 275 |       fn symmetric_difference(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 291 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 292 | |             &bounding_boxes,
[INFO] [stdout] 293 | |             &other_bounding_box,
[INFO] [stdout] 294 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:291:43
[INFO] [stdout]     |
[INFO] [stdout] 275 |       fn symmetric_difference(self, other: &Segment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 291 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 292 | |             &bounding_boxes,
[INFO] [stdout] 293 | |             &other_bounding_box,
[INFO] [stdout] 294 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/symmetric_difference.rs:291:43
[INFO] [stdout]     |
[INFO] [stdout] 291 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 292 | |             &bounding_boxes,
[INFO] [stdout] 293 | |             &other_bounding_box,
[INFO] [stdout] 294 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 88  |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 89  | |             &bounding_boxes,
[INFO] [stdout] 90  | |             &other_bounding_box,
[INFO] [stdout] 91  | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 72  |       fn union(self, other: Self) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 104 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 105 | |             &other_bounding_boxes,
[INFO] [stdout] 106 | |             &bounding_box,
[INFO] [stdout] 107 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 105 | |             &other_bounding_boxes,
[INFO] [stdout] 106 | |             &bounding_box,
[INFO] [stdout] 107 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 177 |       fn union(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                      -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 194 |           let boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 195 | |             &bounding_boxes,
[INFO] [stdout] 196 | |             &other_bounding_box,
[INFO] [stdout] 197 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:205:36
[INFO] [stdout]     |
[INFO] [stdout] 180 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 205 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 262 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 177 |       fn union(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                ----
[INFO] [stdout]     |                |
[INFO] [stdout]     |                `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                has type `&'1 Multisegment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/multisegment/union.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 209 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 210 | |             &other_bounding_boxes,
[INFO] [stdout] 211 | |             &bounding_box,
[INFO] [stdout] 212 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/difference.rs:113:36
[INFO] [stdout]     |
[INFO] [stdout] 112 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 113 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 117 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________-
[INFO] [stdout] 118 | |             &other_bounding_boxes,
[INFO] [stdout] 119 | |             &other_bounding_box,
[INFO] [stdout] 120 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 147 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/difference.rs:117:46
[INFO] [stdout]     |
[INFO] [stdout] 106 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 117 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 118 | |             &other_bounding_boxes,
[INFO] [stdout] 119 | |             &other_bounding_box,
[INFO] [stdout] 120 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'1` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/difference.rs:117:46
[INFO] [stdout]     |
[INFO] [stdout] 117 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 118 | |             &other_bounding_boxes,
[INFO] [stdout] 119 | |             &other_bounding_box,
[INFO] [stdout] 120 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:116:36
[INFO] [stdout]     |
[INFO] [stdout] 115 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 116 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 121 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 122 | |                 &other_bounding_boxes,
[INFO] [stdout] 123 | |                 &bounding_box,
[INFO] [stdout] 124 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 161 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |       fn intersection(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Polygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 121 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 122 | |                 &other_bounding_boxes,
[INFO] [stdout] 123 | |                 &bounding_box,
[INFO] [stdout] 124 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |       fn intersection(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 121 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 122 | |                 &other_bounding_boxes,
[INFO] [stdout] 123 | |                 &bounding_box,
[INFO] [stdout] 124 | |             );
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________`other` escapes the method body here
[INFO] [stdout]     |               argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 122 | |                 &other_bounding_boxes,
[INFO] [stdout] 123 | |                 &bounding_box,
[INFO] [stdout] 124 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:188:36
[INFO] [stdout]     |
[INFO] [stdout] 187 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 188 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 192 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________-
[INFO] [stdout] 193 | |             &other_bounding_boxes,
[INFO] [stdout] 194 | |             &bounding_box,
[INFO] [stdout] 195 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 227 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:192:46
[INFO] [stdout]     |
[INFO] [stdout] 181 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Polygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 192 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 193 | |             &other_bounding_boxes,
[INFO] [stdout] 194 | |             &bounding_box,
[INFO] [stdout] 195 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:192:46
[INFO] [stdout]     |
[INFO] [stdout] 181 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 192 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 193 | |             &other_bounding_boxes,
[INFO] [stdout] 194 | |             &bounding_box,
[INFO] [stdout] 195 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:192:46
[INFO] [stdout]     |
[INFO] [stdout] 192 |           let other_common_area_polygons_ids = to_boxes_ids_with_common_area(
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 193 | |             &other_bounding_boxes,
[INFO] [stdout] 194 | |             &bounding_box,
[INFO] [stdout] 195 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:582:39
[INFO] [stdout]     |
[INFO] [stdout] 582 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:255:36
[INFO] [stdout]     |
[INFO] [stdout] 254 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 255 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 260 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 261 | |                 &other_bounding_boxes,
[INFO] [stdout] 262 | |                 &bounding_box,
[INFO] [stdout] 263 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 300 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |       fn intersection(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Polygon<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 260 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 261 | |                 &other_bounding_boxes,
[INFO] [stdout] 262 | |                 &bounding_box,
[INFO] [stdout] 263 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |       fn intersection(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 260 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 261 | |                 &other_bounding_boxes,
[INFO] [stdout] 262 | |                 &bounding_box,
[INFO] [stdout] 263 | |             );
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________`other` escapes the method body here
[INFO] [stdout]     |               argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/intersection.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 261 | |                 &other_bounding_boxes,
[INFO] [stdout] 262 | |                 &bounding_box,
[INFO] [stdout] 263 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/symmetric_difference.rs:123:36
[INFO] [stdout]     |
[INFO] [stdout] 113 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] ...
[INFO] [stdout] 123 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 127 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 128 | |             &other_bounding_boxes,
[INFO] [stdout] 129 | |             &other_bounding_box,
[INFO] [stdout] 130 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 167 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/symmetric_difference.rs:127:49
[INFO] [stdout]     |
[INFO] [stdout] 109 |           other: &Multipolygon<Scalar>,
[INFO] [stdout]     |           -----  - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 127 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 128 | |             &other_bounding_boxes,
[INFO] [stdout] 129 | |             &other_bounding_box,
[INFO] [stdout] 130 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'1` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/symmetric_difference.rs:127:49
[INFO] [stdout]     |
[INFO] [stdout] 127 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 128 | |             &other_bounding_boxes,
[INFO] [stdout] 129 | |             &other_bounding_box,
[INFO] [stdout] 130 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `other_polygons` because it is borrowed
[INFO] [stdout]    --> src/geometries/polygon/symmetric_difference.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] ...
[INFO] [stdout] 123 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      -------------- borrow of `other_polygons` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 127 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 128 | |             &other_bounding_boxes,
[INFO] [stdout] 129 | |             &other_bounding_box,
[INFO] [stdout] 130 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 135 |                   other_polygons.into_iter().cloned().collect::<Vec<_>>();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ move out of `other_polygons` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/polygon/union.rs:117:36
[INFO] [stdout]     |
[INFO] [stdout] 107 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] ...
[INFO] [stdout] 117 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 121 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 122 | |             &other_bounding_boxes,
[INFO] [stdout] 123 | |             &other_bounding_box,
[INFO] [stdout] 124 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 162 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/polygon/union.rs:121:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |       fn union(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                      -----  - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 121 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 122 | |             &other_bounding_boxes,
[INFO] [stdout] 123 | |             &other_bounding_box,
[INFO] [stdout] 124 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'1` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/polygon/union.rs:121:49
[INFO] [stdout]     |
[INFO] [stdout] 121 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 122 | |             &other_bounding_boxes,
[INFO] [stdout] 123 | |             &other_bounding_box,
[INFO] [stdout] 124 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `other_polygons` because it is borrowed
[INFO] [stdout]    --> src/geometries/polygon/union.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] ...
[INFO] [stdout] 117 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      -------------- borrow of `other_polygons` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 121 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 122 | |             &other_bounding_boxes,
[INFO] [stdout] 123 | |             &other_bounding_box,
[INFO] [stdout] 124 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 129 |                   other_polygons.into_iter().cloned().collect::<Vec<_>>();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ move out of `other_polygons` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:171:49
[INFO] [stdout]     |
[INFO] [stdout] 161 |       fn difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 171 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 172 | |             &other_segments
[INFO] [stdout] 173 | |                 .iter()
[INFO] [stdout] 174 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 175 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 176 | |             &bounding_box,
[INFO] [stdout] 177 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:171:49
[INFO] [stdout]     |
[INFO] [stdout] 161 |       fn difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 171 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 172 | |             &other_segments
[INFO] [stdout] 173 | |                 .iter()
[INFO] [stdout] 174 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 175 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 176 | |             &bounding_box,
[INFO] [stdout] 177 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/difference.rs:171:49
[INFO] [stdout]     |
[INFO] [stdout] 171 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 172 | |             &other_segments
[INFO] [stdout] 173 | |                 .iter()
[INFO] [stdout] 174 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 175 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 176 | |             &bounding_box,
[INFO] [stdout] 177 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/difference.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 170 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 171 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 172 | |             &other_segments
[INFO] [stdout]     | |              ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] 173 | |                 .iter()
[INFO] [stdout] 174 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 175 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 176 | |             &bounding_box,
[INFO] [stdout] 177 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 207 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/difference.rs:234:36
[INFO] [stdout]     |
[INFO] [stdout] 233 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 234 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 239 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 240 | |                 &other_bounding_boxes,
[INFO] [stdout] 241 | |                 &bounding_box,
[INFO] [stdout] 242 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 273 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 239 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 240 | |                 &other_bounding_boxes,
[INFO] [stdout] 241 | |                 &bounding_box,
[INFO] [stdout] 242 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |       fn difference(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 239 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 240 | |                 &other_bounding_boxes,
[INFO] [stdout] 241 | |                 &bounding_box,
[INFO] [stdout] 242 | |             );
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________`other` escapes the method body here
[INFO] [stdout]     |               argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/difference.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 240 | |                 &other_bounding_boxes,
[INFO] [stdout] 241 | |                 &bounding_box,
[INFO] [stdout] 242 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:298:49
[INFO] [stdout]     |
[INFO] [stdout] 288 |       fn difference(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                     has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 298 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 299 | |             &other_segments
[INFO] [stdout] 300 | |                 .iter()
[INFO] [stdout] 301 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 302 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 303 | |             &bounding_box,
[INFO] [stdout] 304 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/difference.rs:298:49
[INFO] [stdout]     |
[INFO] [stdout] 288 |       fn difference(self, other: &Multisegment<Scalar>) -> Self::Output {
[INFO] [stdout]     |                           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 298 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 299 | |             &other_segments
[INFO] [stdout] 300 | |                 .iter()
[INFO] [stdout] 301 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 302 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 303 | |             &bounding_box,
[INFO] [stdout] 304 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/difference.rs:298:49
[INFO] [stdout]     |
[INFO] [stdout] 298 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 299 | |             &other_segments
[INFO] [stdout] 300 | |                 .iter()
[INFO] [stdout] 301 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 302 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 303 | |             &bounding_box,
[INFO] [stdout] 304 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/difference.rs:299:14
[INFO] [stdout]     |
[INFO] [stdout] 297 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] 298 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 299 | |             &other_segments
[INFO] [stdout]     | |              ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] 300 | |                 .iter()
[INFO] [stdout] 301 | |                 .map(Bounded::to_bounding_box)
[INFO] [stdout] 302 | |                 .collect::<Vec<_>>(),
[INFO] [stdout] 303 | |             &bounding_box,
[INFO] [stdout] 304 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 334 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_polygons` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/intersection.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 126 |           let other_polygons = other.polygons();
[INFO] [stdout]     |               -------------- binding `other_polygons` declared here
[INFO] [stdout] 127 |           let other_bounding_boxes = other_polygons
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 132 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 133 | |                 &other_bounding_boxes,
[INFO] [stdout] 134 | |                 &bounding_box,
[INFO] [stdout] 135 | |             );
[INFO] [stdout]     | |_____________- argument requires that `other_polygons` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 172 |       }
[INFO] [stdout]     |       - `other_polygons` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/intersection.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                       ----
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                       has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 132 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 133 | |                 &other_bounding_boxes,
[INFO] [stdout] 134 | |                 &bounding_box,
[INFO] [stdout] 135 | |             );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/intersection.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |       fn intersection(self, other: &Multipolygon<Scalar>) -> Self::Output {
[INFO] [stdout]     |                             -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 132 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 133 | |                 &other_bounding_boxes,
[INFO] [stdout] 134 | |                 &bounding_box,
[INFO] [stdout] 135 | |             );
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________`other` escapes the method body here
[INFO] [stdout]     |               argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/intersection.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 | /             to_boxes_ids_with_common_continuum(
[INFO] [stdout] 133 | |                 &other_bounding_boxes,
[INFO] [stdout] 134 | |                 &bounding_box,
[INFO] [stdout] 135 | |             );
[INFO] [stdout]     | |_____________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:594:39
[INFO] [stdout]     |
[INFO] [stdout] 594 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:151:36
[INFO] [stdout]     |
[INFO] [stdout] 141 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 151 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 155 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 156 | |             &other_bounding_boxes,
[INFO] [stdout] 157 | |             &bounding_box,
[INFO] [stdout] 158 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 197 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:155:49
[INFO] [stdout]     |
[INFO] [stdout] 138 |       fn symmetric_difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self` is a reference that is only valid in the method body
[INFO] [stdout]     |                               has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 155 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 156 | |             &other_bounding_boxes,
[INFO] [stdout] 157 | |             &bounding_box,
[INFO] [stdout] 158 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:155:49
[INFO] [stdout]     |
[INFO] [stdout] 138 |       fn symmetric_difference(self, other: &Contour<Scalar>) -> Self::Output {
[INFO] [stdout]     |                                     -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 155 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 156 | |             &other_bounding_boxes,
[INFO] [stdout] 157 | |             &bounding_box,
[INFO] [stdout] 158 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:155:49
[INFO] [stdout]     |
[INFO] [stdout] 155 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 156 | |             &other_bounding_boxes,
[INFO] [stdout] 157 | |             &bounding_box,
[INFO] [stdout] 158 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `other_segments` does not live long enough
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:233:36
[INFO] [stdout]     |
[INFO] [stdout] 223 |           let other_segments = other.segments();
[INFO] [stdout]     |               -------------- binding `other_segments` declared here
[INFO] [stdout] ...
[INFO] [stdout] 233 |           let other_bounding_boxes = other_segments
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 237 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________-
[INFO] [stdout] 238 | |             &other_bounding_boxes,
[INFO] [stdout] 239 | |             &bounding_box,
[INFO] [stdout] 240 | |         );
[INFO] [stdout]     | |_________- argument requires that `other_segments` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 279 |       }
[INFO] [stdout]     |       - `other_segments` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:237:49
[INFO] [stdout]     |
[INFO] [stdout] 218 |           self,
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `self` is a reference that is only valid in the method body
[INFO] [stdout]     |           has type `&'1 Segment<Scalar>`
[INFO] [stdout] ...
[INFO] [stdout] 237 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 238 | |             &other_bounding_boxes,
[INFO] [stdout] 239 | |             &bounding_box,
[INFO] [stdout] 240 | |         );
[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] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:237:49
[INFO] [stdout]     |
[INFO] [stdout] 219 |           other: &Multisegment<Scalar>,
[INFO] [stdout]     |           -----  - let's call the lifetime of this reference `'2`
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `other` is a reference that is only valid in the method body
[INFO] [stdout] ...
[INFO] [stdout] 237 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 238 | |             &other_bounding_boxes,
[INFO] [stdout] 239 | |             &bounding_box,
[INFO] [stdout] 240 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________`other` escapes the method body here
[INFO] [stdout]     |           argument requires that `'2` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: due to current limitations in the borrow checker, this implies a `'static` lifetime
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometries/segment/symmetric_difference.rs:237:49
[INFO] [stdout]     |
[INFO] [stdout] 237 |           let other_boxes_have_common_continuum = to_boxes_have_common_continuum(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 238 | |             &other_bounding_boxes,
[INFO] [stdout] 239 | |             &bounding_box,
[INFO] [stdout] 240 | |         );
[INFO] [stdout]     | |_________^ one type is more general than the other
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait `for<'a> <&'a bounded::types::Box<&Scalar> as Relatable>`
[INFO] [stdout]                found trait `for<'a> <&'a bounded::types::Box<&'a Scalar> as Relatable>`
[INFO] [stdout] note: the lifetime requirement is introduced here
[INFO] [stdout]    --> src/operations.rs:565:39
[INFO] [stdout]     |
[INFO] [stdout] 565 |     for<'a> &'a bounded::Box<Scalar>: Relatable,
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]     --> src/lib.rs:1320:22
[INFO] [stdout]      |
[INFO] [stdout] 1320 |     fn locate(&self, point: &PyExactPoint, py: Python) -> PyResult<&PyAny> {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]     --> src/lib.rs:1320:22
[INFO] [stdout]      |
[INFO] [stdout] 1320 |     fn locate(&self, point: &PyExactPoint, py: Python) -> PyResult<&PyAny> {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 173 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0505, E0521, E0597.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rene` (lib) due to 174 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 173 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0505, E0521, E0597.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rene` (lib test) due to 174 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "d47198268cf8f610bfb1ea012f064a1106dc0b008625ce31747ccf0b913add55", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d47198268cf8f610bfb1ea012f064a1106dc0b008625ce31747ccf0b913add55", kill_on_drop: false }`
[INFO] [stdout] d47198268cf8f610bfb1ea012f064a1106dc0b008625ce31747ccf0b913add55
