Do you have experiences worth sharing?
It was not ever meant to be a language, but I eventually added function definition and evaluation which gave rise to VoqLisp. I have VoqLisp bindings to various APIs, and documented it; it ended up used by QA for testing.
VoqLisp had dynamic scope ("deep binding"), but with lexical capture. The initial dynamic frames of top-level forms, and of invoked functions, were marked with a lexical contour bit. There was a lambda which captured dynamic frames up to the closest containing lexical contour bit. When a lambda was invoked, the captured, lexically-delimited dynamic environment was inserted around it, after the parameter bindings, before the caller's dynamic environment. This made it possible for tests to use "let over lambda" to customize global parameters, and then run the lambda with the customized parameters in a separate thread.
Then a blog post on why they killed Wasabi 10 years later:
- https://web.archive.org/web/20150625182637/http://blog.fogcr...
- https://hw.leftium.com/#/item/9777829
---
I think you might be interested in\thinking about DSLs (Domain-Specific Languages). Lisp macros/meta-programming are often used to create DSLs.
Paul Graham describes writing a DSL for ViaWeb to stay ahead of the competition: https://hw.leftium.com/#/item/32053575
Interestingly, this seems to also have been replaced later: https://hw.leftium.com/#/item/10567685