add support for `fire_if(cond, ...)`