anchor.diff:  
           (prelude out)
           (w/line! out (.. "local " (concat escape-list ", ")))
  -
   
           ;; Emit all expressions
           (for i 1 (n state-list) 1
  
positive.code:       ;; "too many local variable" errors. The upper bound is actually 200, but lambda inlining
        ;; will probably bring it up slightly.
        ;; In the future we probably ought to handle this smartly when it is over 150 too.
        (if (between? count 1 150)
          (progn
            (w/append! out "local ")
            (with (first true)
              (for-each node (.> compiler :out)
                (when-with (var (.> node :def-var))
                  (if first
                    (set! first false)
                    (w/append! out ", "))
                  (w/append! out (escape-var var state)))))
            (w/line! out))
          (w/line! out "local _ENV = setmetatable({}, {__index=ENV or (getfenv and getfenv()) or _G}) if setfenv then setfenv(0, _ENV) end")))
  
      (block (.> compiler :out) out state 1 "return ")
      out))
  
negative.code: (import urn/analysis/visitor visitor)
  (import urn/backend/lua/emit ())
  (import urn/backend/lua/escape (push-escape-var! escape-var) :export)
  (import urn/backend/writer w)
  