@Override
 public void merge(AnnotationMemberDeclaration remote, MergeEngine configuration) {
   super.merge(remote, configuration);
   setType((Type) configuration.apply(getType(), remote.getType(), Type.class));
   setDefaultValue(
       (Expression)
           configuration.apply(getDefaultValue(), remote.getDefaultValue(), Expression.class));
 }
 @Override
 public int compare(AnnotationMemberDeclaration an1, AnnotationMemberDeclaration an2) {
   if (an1.getName() == null || an2.getName() == null) {
     throw new IllegalArgumentException(
         "Annotation member must have a name in order to compare them" + an1 + "-" + an2);
   }
   return an1.getName().compareTo(an2.getName());
 }