struct A(i32);
struct B<'a>(&'a A);
struct C<'a, 'b>(&'b B<'a>);
struct D<'a, 'b, 'c>(&'c C<'a, 'b>);

fn foo() {
  let `(x)` = D(&C(&B(&A(0))));
  let y = x.0.0.0.0 + 1;
}
