Avoid side effects in predicate methods

Side effects in predicate methods are typically unexpected. I have seen this kind of use in Rails projects for custom validation methods on a model, where a predicate method both returns a boolean and adds an error on the model object.