anchor.diff:  (defun progn-statements (stmt)
     (match stmt
       (('progn . stmts) stmts)
  -    (_ (error (format nil "invalid statement: ~A" stmt)))))
  +    (_ (error "invalid statement: ~A" stmt))))
   
   (defun compile-progn (stmt type-env def)
     (compile-progn-statements (progn-statements stmt) type-env def))
  
positive.code:     (('return) "return;")
      (('return exp) (format nil "return ~A;"
                                 (compile-expression exp type-env def)))
      (_ (error (format nil "invalid statement: ~A" stmt)))))
  
  
  ;;; do statement
  
negative.code: (defun let-bindings (stmt)
    (match stmt
      (('let bindings . _) bindings)
      (_ (error "invalid statement: ~A" stmt))))
  
  (defun let-statements (stmt0)
    (match stmt0
      (('let _ . stmts) stmts)
      (_ (error "invalid statement: ~A" stmt0))))
  
  (defun compile-let (stmt0 type-env def)
    (let ((bindings (let-bindings stmt0))
  