ple function calls, without passing that argument to every function
explicitly.  This can make code more concise, easier to read, and easier to
extend. Dynamic bindings are a mechanism that provide this in a safe and easy to
use way.  This is in contrast to lexically-scoped bindings, which are usually
superior to dynamically-scoped bindings in terms of clarity, composability, and
performance. However, dynamic scoping can be used to great effect for implicit
contexts, configuration, and testing. Janet suppor