anchor.diff:  ;;; ------------------------------------------------------------------------
   
   (define-sw-parser-rule :SORT-PRODUCT ()
  -  (:tuple (1 :TIGHT-SORT) "*" (2 (:repeat+ :TIGHT-SORT "*")))
  -  (make-sort-product (cons 1 2) ':left-lcb ':right-lcb))
  +  (:tuple (1 (:repeat++ :TIGHT-SORT "*")))
  +  (make-sort-product 1 ':left-lcb ':right-lcb))
   
   ;;; ------------------------------------------------------------------------
   ;;;   SORT-INSTANTIATION
  
positive.code:   :documentation "Tuple")
  
  (define-sw-parser-rule :TUPLE-DISPLAY-BODY ()
    (:tuple (1 :EXPRESSION) "," (2 (:repeat+ :EXPRESSION ",")))
    (cons 1 2))
  
  ;;; ------------------------------------------------------------------------
  ;;;  RECORD-DISPLAY
  
negative.code:    ))
  
  (define-sw-parser-rule :LIST-PATTERN ()
    (:tuple "[" (1 (:repeat* :PATTERN ",")) "]")                   (make-list-pattern       1              ':left-lcb ':right-lcb) :documentation "List enumeration")
  
  (define-sw-parser-rule :TUPLE-PATTERN ()
    (:anyof
     ((:tuple "(" ")")                                              (make-tuple-pattern     ()             ':left-lcb ':right-lcb) :documentation "Empty tuple pattern")
     ;; "(X)" not allowed, just "()" "(X,Y)" "(X,Y,Z)" ...
     ((:tuple "(" (1 (:repeat++ :PATTERN ",")) ")")                 (make-tuple-pattern     1              ':left-lcb ':right-lcb) :documentation "Tuple pattern")
     ))
  
  (define-sw-parser-rule :RECORD-PATTERN ()
    ;; allow "( }" ??
    (:tuple "{" (1 (:repeat+ :FIELD-PATTERN ",")) "}")              (make-record-pattern    1              ':left-lcb ':right-lcb) :documentation "Record pattern")
  
  (define-sw-parser-rule :FIELD-PATTERN ()
    (:tuple (1 :FIELD-NAME) (:optional (:tuple "=" (2 :PATTERN))))
  