But when I remove the 'a, it throws missing lifetime specifier and suggests using the 'a.
I'm assuming I ran into a bug, but I don't know rust too well, that I can be sure about that. Maybe I'm misunderstanding something.
Whats your opinion?
Rust wants a field using the parameter, I think in part because it needs to determine the variance. You can add a field like PhantomData<&'a ()> to cover this.
Or better yet, don't put unnecessary bounds in thr type definition. Instead put the bounds where the type is used bound is used, usually near the relevant methods.