if (type.equals(DERIVATIVE_EXPRESSION)) return new DerivativeImpl(node);
if (type.equals(COMPOSITION_EXPRESSION)) return new CompositionImpl(node);
if (type.equals(RIGHT_COMPOSITION_EXPRESSION)) return new RightCompositionImpl(node);
// 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