// List or Association related
if (type.equals(LIST_EXPRESSION)) return new ListImpl(node);
if (type.equals(ASSOCIATION_EXPRESSION)) return new AssociationImpl(node);
if (type.equals(PART_EXPRESSION)) return new PartImpl(node);
if (type.equals(SPAN_EXPRESSION)) return new SpanImpl(node);
// Logical operations
if (type.equals(AND_EXPRESSION)) return new AndImpl(node);
if (type.equals(OR_EXPRESSION)) return new OrImpl(node);
if (type.equals(NOT_PREFIX)) return new NotImpl(node);