public void write(CompressingDataOutputStream s) throws IOException {
   s.writeInt(patterns.length);
   for (int i = 0; i < patterns.length; i++) {
     patterns[i].write(s);
   }
   writeLocation(s);
 }
 @Override
 public void write(CompressingDataOutputStream s) throws IOException {
   s.writeShort(typePatterns.length);
   for (int i = 0; i < typePatterns.length; i++) {
     typePatterns[i].write(s);
   }
   // writeLocation(s);
 }
 @Override
 public void write(CompressingDataOutputStream s) throws IOException {
   s.writeByte(AnnotationTypePattern.ELLIPSIS_KEY);
 }
 public void write(CompressingDataOutputStream s) throws IOException {
   s.writeByte(Pointcut.AND);
   left.write(s);
   right.write(s);
   writeLocation(s);
 }