Is it just me or is
.where(p -> p.getCategory == 2 || p.getCategory == 5 && isProductUnderDiscount(p))
and if (product.getCategory() == 2 || product.getCategory() == 5) {
boolean yes = isProductUnderDiscount(product);
not functionally equivalent due to && precedence?