if (e != this) {
return e;
}
if (Cardinality.subsumes(targetCardinality, operand.getCardinality())) {
final TypeHierarchy th = visitor.getConfiguration().getTypeHierarchy();
int relation = th.relationship(operand.getItemType(th), targetType);
if (relation == TypeHierarchy.SAME_TYPE || relation == TypeHierarchy.SUBSUMED_BY) {
return Literal.makeLiteral(BooleanValue.TRUE);
} else if (relation == TypeHierarchy.DISJOINT) {
// if the item types are disjoint, the result might still be true if both sequences are empty
if (!Cardinality.allowsZero(targetCardinality) || !Cardinality.allowsZero(operand.getCardinality())) {