At the moment check returns a string which is printed to the user when successfull and nil when the check failed (but no error happened). This could be made more expressive by returning an AssertionStatus object which encapsulates the results in the way the calling code needs it.