Closure-oriented metaprogramming in Common Lisp