error: lifetime may not live long enough
  --> tests/compile_fail/ancestor_lifetime2.rs:15:13
   |
8  | impl<'a, 'b> Traverse<'a> for Trans<'a, 'b> {
   |          -- lifetime `'b` defined here
...
12 |         ctx: &mut TraverseCtx<'a>,
   |              - let's call the lifetime of this reference `'1`
...
15 |             self.program = Some(program);
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ assignment requires that `'1` must outlive `'b`
