I think how midje does it is described here
https://github.com/marick/Midje/wiki/Autotest From a user perspective, it will re-run particular tests when an (indirect) namespace dependency has been changed. I think it uses clojure.tools.namespace for this. The downside is that it sometimes it runs too much, e.g when you make a change in a core file of your project, or too little, e.g. when you make a change in Record definition. For example, the latter happens when you use Stuart Sierra's Component. Your application code will require the protocol namespaces, but not the implementation one. So these dependencies are not found, and if so often in the wrong order causing protocol mismatches. I tend to "solve" this by evaluating my code via Cider and re-running the test file manually.
I'm guessing that the above could be useful for core.typed, but is really a heuristic and not a particular reliable one (as in the example of Component usage). So if you would do this for type checking you would possible find out type errors in a very late stage, i.e. when running the full type check on the project. But I guess it is better than not running the type checks at all because it takes too long.
Does have core.typed have something like autotest?
Thanks,
Jeroen