Elide lifetimes

I'm not eliding struct lifetime parameters because that makes things
confusing IMO