Sure, so once a week or so you need to restart the process if you end up like that.
What I've seen people do, is restart the process after each change like you typically do in other languages, rather than evaluating the current form...
Full test suites I run before committing essentially, in a separate tab altogether, then the full suite is typically also run in CI before any deploys.
The thing that happens to me is that I'll get something working in the REPL, then try to deploy it and it breaks—because unbeknownst to me, I had gotten my REPL into some state where everything was working, but a cold start doesn't look the same.
Is this a skill issue? Absolutely. Do I still restart the REPL frequently (not after every def, but often) just to make sure I'm working with the same environment my program will be experiencing at run time? Yes I absolutely do.
Ah yeah, been there, and probably the first time was when renaming a function but missing to update callers, so callers keep calling the old function, and you have no idea why the changes you made in the new function aren't working.
I have a this little function for clearing the current namespace that I call every time I rename any var inside a namespace:
What I've seen people do, is restart the process after each change like you typically do in other languages, rather than evaluating the current form...