Fix build break due to generalized type parameter bounds

This one is going to take a while to ripple through the Rust ecosystem...

Note that I transposed the lifetime names to preserve the 'a, 'b order of the parameter list.