[:not [Thing]] means “no Thing exists”. I don’t see any reason to need [:not [:exists ...]] - it would mean the same thing, but it doesn’t work via the compiler
I think the better solution in the compiler at this point would be to just fail on that case rather than try to implement it more than likely
You cannot bind to [:not ...]