> Note that def we have inserted, to define a global variable request. This is a powerful debug mechanism, but a better way to use it is a tool like [snitch](https://github.com/AbhinavOmprakash/snitch).
In my experience, this is a phenomenal way to develop.
You just replace whatever `defn` or `let` you are working on with `defn` and `let`, and interact with your app normally (click around in the UI, trigger the frontend or backend functions you are examining). Combined with a tool like portal (https://github.com/djblue/portal) you can quickly get an overview of your system while it is running!
Ideally in functional programming everything is a (pure) function (and this is how I program), so you never have your variables defined.
Instead, my standard setup is to debug a function by saving its arguments in a vector, e.g.
Then I can call buggy-function with and modify the code until it behaves as expected.This is also where immutability has its grand appearance.