@dabeazDavid Beazley I came across your Ray Tracing videos on Rust Weekly. Really cool stuff!
BTW, I think if you pass `box<dyn Hittable>` to `HittableList`'s `add` method (and boxing outside), you can avoid the lifetime annotation for `HittableList`
That said, working with trait objects in Rust often feels more cumbersome than using dynamic dispatch in OOP languages (I think this is because Rust uses fat pointers rather than embedding the vtable in the object)