public static <T> Predicate<T> or(Predicate<T> left, Predicate<T> right) { if (left == FALSE) { return right; } if (right == FALSE) { return left; } return (left == TRUE || right == TRUE) ? Is.<T>true_() : new OrPredicate<T>(left, right); }