Generalise `guard` for real this time

This was missed in D253 / a07ce1654ac5b8033f2daf9270c6e182415b69ca