public boolean equals(Object o) {
   if (o instanceof Not) {
     Not n = (Not) o;
     return pattern.equals(n.pattern);
   }
   return false;
 }