anchor.diff:    (let* [(x (get-idx x :contents))]
       (= (char-at x (#s x)) "?")))
   
  +(defun struct-pat? (x) :hidden
  +  (and (eq? (car x) 'struct-literal)
  +       (= (% (# (cdr x)) 2) 0)))
  +
   (defun assert-linearity! (pat seen) :hidden
     (cond
       [(! seen) (assert-linearity! pat {})]
  
positive.code:           (compile-pattern-bindings (caddr pattern) `(,(cadr pattern) ,symb))]
           [(eq? (car pattern) 'optional)
            (compile-pattern-bindings (cadr pattern) symb)]
           [(cons-pattern? pattern)
            (let* [(lhs (cons-pat-left-side pattern))
                   (rhs (cons-pat-right-side pattern))
  
negative.code:         (assert-linearity! (caddr pat) seen)]
         [(eq? (car pat) 'optional)
          (assert-linearity! (cadr pat) seen)]
         [(struct-pat? pat)
          (for i 3 (# pat) 2
            (assert-linearity! (nth pat i) seen))]
         [(cons-pattern? pat)
          (let* [(seen '())]
            (for i 1 (pattern-# pat) 1
  