| How do I do something like this in Arc? So that (w/stdx "bar" (fn () (stdx)))
returns "bar" instead of "foo".  (= defx* "foo")
  (def stdx () defx*)
  (def w/stdx (s thunk)
    (let defx* "bar"
       (thunk)))
 Here's what I came up with: Is there a more elegant way to do this?
Like some way to declare defx* as special
so it doesn't get stored in closures?  (def stdx () (atomic defx*))
  (def w/stdx (s thunk)
    (atomic
      (let oldx defx*
        (after
          (do (= defx* s)
              (thunk))
          (= defx* oldx)))))
 |