anchor.diff:      (cond
         [(list? pattern)
          (cond
  -         [(and (symbol? (cadr pattern)) ; prevent against weird type punning
  -               (eq? (cadr pattern) '@))
  +         [(eql? (cadr pattern) '@)
             `(,@(compile-pattern-bindings (caddr pattern) symb) ,@(compile-pattern-bindings (car pattern) symb))]
  -         [(and (key? (cadr pattern)) ; prevent against weird type punning
  -               (eq? (cadr pattern) ':when))
  +         [(eql? (cadr pattern) ':when)
             (compile-pattern-bindings (car pattern) symb)]
  -         [(and (symbol? (cadr pattern)) ; prevent against weird type punning
  -               (eq? (cadr pattern) '->))
  +         [(eql? (cadr pattern) '->)
             (compile-pattern-bindings (caddr pattern) `(,(car pattern) ,symb))]
  -         [(eq? (car pattern) 'optional)
  +         [(eql? (car pattern) 'optional)
             (compile-pattern-bindings (cadr pattern) symb)]
            [(struct-pat? pattern)
             (let* [(out '())]
  
positive.code:     (= (char-at x (#s x)) "?")))
  
  (defun struct-pat? (x) :hidden
    (and (eq? (car x) 'struct-literal)
         (symbol? (car x))
         (= (% (# (cdr x)) 2) 0)))
  
  (defun assert-linearity! (pat seen) :hidden
  
negative.code:     [(! seen) (assert-linearity! pat {})]
      [(list? pat)
       (cond
         [(eql? (cadr pat) '@)
          (assert-linearity! (caddr pat) seen)]
         [(eql? (cadr pat) ':when)
          (assert-linearity! (car pat) seen)]
         [(eql? (cadr pat) '->)
          (assert-linearity! (caddr pat) seen)]
         [(eql? (car pat) 'optional)
          (assert-linearity! (cadr pat) seen)]
         [(struct-pat? pat)
          (for i 3 (# pat) 2
  