Ignoring native interop and transients, is it possible to create any data structures in Clojure that contain direct circular references ?
It would seem that immutable da
In Clojure most circular data structures will explicitely go through a ref type of some kind (eg atom).
However you can create a circular sequence (it's somewhat an oxymoron):
(let [a (atom nil)] (reset! a (lazy-seq (cons 1 @a))))
And since Clojure 1.2 with deftype you can create other datatypes which can introduce circularity without using explicitely (from the usercode at least) any kind of ref type.