I want to implement a builder similar to the debug builders defined by the standard library. They are defined using structures like the following:
struct Deb
Yes, you're broadly right.
A bound <...: 'a> means that ... (either a type or another lifetime) needs to be able to outlive 'a. E.g. 'b: 'a means that "'b must live at least as long as 'a" (not strictly outlives, though: they can be the same).
<...: 'a>
...
'a
'b: 'a
'b