That's pretty obsolete. When I wrote that I was in the middle of trying to write a new Arc whose source was as clean as formal semantics but was actual working code. That turned out not to work because the resulting language was so slow I didn't want to use it for anything, and without applications to drive me I stopped caring about the language. What eventually happened after various experiments was that Robert and I wrote a new implementation that was a compromise between cleanness and practicality.
So now instead of starting with cleanness and trying to achieve practicality, the plan is to always work on practical stuff (like "always have running code") but constantly push the source toward cleanness. I feel like a lot of the definitions in arc.arc for example are close to final form.
That's really good to hear. It's easy to feel like we're just spinning our wheels, but knowing you're paying attention and that our work might actually be useful is heartening.
You can make them (and all kinds of other circular structures) but there's currently no way of printing them out. Fixing that is not a top priority. There are plenty of things you don't want to print in the repl, like million-item lists. So in the repl the way to deal with this is by using e.g. (do1 t ...).
I admit it's a problem if you explicitly want to print a circular list, e.g. to store it in a file. But in my experience that is rare.
Yes, ~f means the same as no:f. So far I like the brief and distinctive look of negated functions thus: ~foo. But since potential symbol-syntax chars are rare, I might use ~ for something else one day if negated fns turn out not to be too common. There are currently only 9 in news.arc (1410 LOC).
Edit: Looks like there could be 4 more. Most of news.arc was written before ssyntax, so it's not maximally up to date.