¿Cuándo es útil definir múltiples vidas en una estructura?

En Rust, cuando queremos que una estructura contenga referencias, generalmente definimos sus vidas como tales:

struct Foo<'a> {
    x: &'a i32,
    y: &'a i32,
}

Pero también es posible definir múltiples vidas para diferentes referencias en la misma estructura:

struct Foo<'a, 'b> {
    x: &'a i32,
    y: &'b i32,
}

¿Cuándo es útil hacer esto? ¿Alguien puede proporcionar algún código de ejemplo que no se compila cuando ambas vidas son'a pero se compila cuando las vidas son'a y'b (o viceversa)?

Respuestas a la pregunta(1)

Su respuesta a la pregunta