Ghostwheel: https://github.com/gnl/ghostwheel is a remarkable Clojure library.
It has compile-time effect detection (so it can verify you use foo! names) and even generative testing!
(The readme is a fun read too.)
miniblog.
Related Posts
What's the best string representation of a function? Comparing with other PLs:
Python: <function __main__.add_one()>
JS: [Function: addOne]
Clojure: #function[user/add-one]
Scheme: #<procedure add-one (x)>
I'm currently thinking about <fun add_one() foo.gdn:123>
Should lint suppressions be first class syntax or comments?
Adding a proper metadata system (e.g. Clojure or Rust) is a big design space but it's clear which expressions are affected.
Comments are much easier to implement but it's easy for users to get them wrong.
Thoughts?
I've released difftastic 0.65! Highlights of this release:
* Better parsing of Clojure, Common Lisp, Kotlin, Rust and Zig.
* Quality of life improvements for binary files.



