In general this is safe: B would not be evaluated only if A would be false, that is, when the assertion would be raised anyway. So what worse can happen in evaluating B than an assertion failure. Not much I guess. And for Uncertain<> conditions, it is preferable to use & instead of &&. So I change some of these to see if it might become a global rule.