warning: unnecessary parentheses around closure body
   --> homotopy-core/src/collapse.rs:135:22
    |
135 |         .filter(|&e| (e.target() != keep))
    |                      ^                  ^
    |
    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
help: remove these parentheses
    |
135 -         .filter(|&e| (e.target() != keep))
135 +         .filter(|&e| e.target() != keep)
    |

warning: unnecessary parentheses around closure body
   --> homotopy-core/src/collapse.rs:158:22
    |
158 |         .filter(|&e| (e.source() != keep))
    |                      ^                  ^
    |
help: remove these parentheses
    |
158 -         .filter(|&e| (e.source() != keep))
158 +         .filter(|&e| e.source() != keep)
    |

warning: `homotopy-core` (lib) generated 2 warnings (run `cargo fix --lib -p homotopy-core` to apply 2 suggestions)
   Compiling homotopy-core v0.1.0 (/home/maximus/.env/extern/diagrammatic-semiotics/homotopy-rs/homotopy-core)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.55s
     Running `target/debug/examples/scan_identities`
=== Scanning homotopy-rs examples for identity cospans ===

--- Scanning lips() ---
lips: dim=4, size=1

--- Scanning pants_unit() ---
pants_unit: dim=4, size=1

--- Scanning touching() ---
touching: dim=3, size=2

--- Scanning crossing() ---
crossing: dim=3, size=2

--- Scanning algebraic_snake() ---
algebraic_snake: dim=3, size=1

--- Scanning bubble() ---
bubble: dim=2, size=2

--- Scanning snake() ---
snake: dim=2, size=2

=== Constructing potential essential identity scenario ===

half_braid: dim=3, size=1
half_braid.source: dim=2
  size=2

dim3_with_id: dim=3, size=2
  cospan[0] is_identity: false
  cospan[1] is_identity: true

Attempting contraction on dim3_with_id...
Contraction succeeded!
result: dim=4, size=1
  FOUND: source at depth=1, dim=3, size=2, identity_cospans=[1]/2, path=["source"]

=== Exporting contracted diagram ===
