Help understand a lifetime error (E0623)

Hi all, I'm having a bit of trouble understanding why I get a lifetime error
here

If I comment out that line and uncomment the one above the error goes away,
but to me it seems like it should be the same. I've reduced the example as much as I could, but in the actual code the behavior in the iterator and add functions is more complex.

iter returns using the functions input lifetime by default.

fn iter(&self) -> NodeIter<'a, '_> {

Thank you so much. I've been staring myself blind at this wondering why it wasn't working.