anchor.diff:  ;;            (concl x y z))))
   
   (defun flip-typed-vars (x)
  +  (declare (xargs :guard (typed-arg-listp x)))
     (cond ((atom x) nil)
  +        ((atom (car x))
  +         (cons (car x) (flip-typed-vars (cdr x))))
           (t (cons (list (cadar x) (caar x))
                    (flip-typed-vars (cdr x))))))
   
  
positive.code: (defun get-type-constraint-args-1 (xargs)
     (declare (xargs :guard (true-listp xargs)))
    (cond ((atom xargs) nil)
          ((equal (car xargs) ':type-constraint-args)
           (cadr xargs))
          (t (get-type-constraint-args-1 (cddr xargs)))))
  
  
negative.code:                 (remove-body-declare rst))))
  
  (defmacro defthmd-typed (name typed-vars term &rest rst)
    (declare (xargs :guard (and (symbolp name)
                                (typed-arg-listp typed-vars)
                                (true-listp rst))))
    `(progn ,(append `(defthm-typed ,name ,typed-vars ,term) rst)
            (in-theory (disable ,name))))
  
  