@unspeaker It totally makes sense! I think, but I'm not fully sure, that the Box interior to one of those variants might be introducing an opaque lifetime?
what I'm suggesting is an `impl Collection` method that is apart from the trait, with fewer lifetimes to worry about, that gets the value inside the box somehow? Maybe that'll convince the compiler that ownership has changed.
(A self invoking block might cause `Drop` to take things out of scope in the same way too)