public Sentence convert(EOQualifier q) {
if (q instanceof EOAndQualifier) {
Collection<Sentence> components = convertCollection(((EOAndQualifier) q).qualifiers());
return new BinaryJoined(BinaryOperator.AND, components);
} else if (q instanceof EOOrQualifier) {
Collection<Sentence> components = convertCollection(((EOOrQualifier) q).qualifiers());
return new BinaryJoined(BinaryOperator.OR, components);
} else if (q instanceof EONotQualifier) {
Sentence component = convert(((EONotQualifier) q).qualifier());
return new Negation(component);
} else if (q instanceof EOKeyValueQualifier) {