anchor.diff:  ;;                 (type6-p c)
   ;;                 (type7-p i)
   ;;                 (type8-p j)))
  -;;   :type-constraint-rule-classes foo1
  -;;   :type-constraint-instructions foo2
  -;;   :type-constraint-hints foo3
  -;;   :type-constraint-otf-flg foo4
  -;;   :type-constraint-doc foo5)
  +;;   :rule-classes foo1
  +;;   :instructions foo2
  +;;   :hints foo3
  +;;   :otf-flg foo4
  +;;   :doc foo5)
   
   
   (defun add-p-to-name (name)
  
positive.code:                   :mode :program))
    `(progn
       (defmacro ,(appsyms (list name 'instantiate)) ,vars
         `(defcoproduct ,(appsyms (cons ',name (list ,@vars)))
            ,@(sub-type-cases ',cases (make-alist ',vars (list ,@vars)))))
       ,@(constrained-type-vars vars name)
       (,(appsyms (list name 'instantiate)) ,@(constrained-type-var-names vars name))))
  
  (defmacro defcoproduct-poly (name vars &rest cases)
    (defcoproduct-poly-fn name vars cases))
  
  
  ;;;;;;;;;;;;;;
  ;; BUILTINS ;;
  
negative.code: (defun get-type-constraint-args-1 (xargs)
     (declare (xargs :guard (true-listp xargs)))
    (cond ((atom xargs) nil)
          ((equal (car xargs) ':type-args)
           (cadr xargs))
          (t (get-type-constraint-args-1 (cddr xargs)))))
  
  