docs: public void writeExternal(ObjectOutput out) throws IOException {
          super.writeExternal(out);
          out.writeObject(packageNames);
          out.writeObject(expression);
  
          if (extractor instanceof ClassFieldReader) {
              out.writeObject( ( (ClassFieldReader) extractor ).getAccessorKey() );
          } else {
              out.writeObject( extractor );
          }
  
          out.writeObject(indexingDeclaration);
          out.writeObject(declarations);
          out.writeObject(constraintType);
          out.writeBoolean(isUnification);
          out.writeBoolean(isDynamic);
          out.writeObject(fieldValue);
          out.writeObject(compilationUnit);
          out.writeObject(evaluationContext);
          out.writeObject(operators);
      }