It'd be nice if failure also reported, at DEBUG or less verbose level, the things that failed.  I realise that makes the code more complex, but you could replace checks with two lists, good for the ones expected to pass, bad for those expected to fail; which could even simplify the setting of ok.  Then you can
```
EXTRA::
    "class $(good) is ON" ifvarclass => "$(good)";
    "class $(bad) is OFF" ifvarclass => "!$(bad)";
DEBUG::
    "class $(good) is OFF" ifvarclass => "!$(good)";
    "class $(bad) is ON" ifvarclass => "$(bad)";
```