Check function `compute` vs. `check` variants

Putting this here to avoid thread-jacking. Re:

I’ve run into this too and it makes our code messy. One wrinkle that needs investigating is whether the compute variants can always return a bool or if they sometimes need to return more information. For vectorizing the check functions it might be nice to return more (so the same thing can be called on a vector/matrix/array and still produce the correct indices at the top level).

The compute variants can return a bool, but that doesn’t include the relevant information for debugging. So I don’t see how that’d work. They might be able to return a boolean and instantiate a message, but that starts to defeat the purpose of the factorization of the underlying checker needs to format a text message.