eval method
Short-circuits: b isn't evaluated when a decides the result.
Implementation
@override
Object eval(DataInstance? model, EvaluationContext context) {
final x = toBoolean(a.eval(model, context));
if ((!x && op == BoolOp.and) || (x && op == BoolOp.or)) return x;
return toBoolean(b.eval(model, context));
}