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 data structures can only ever contain references to previous versions of themselves. Are there any Clojure APIs that could create a new data structure that has a reference to itself ?
Scheme has the letrec form which allows mutually recursive structures to be created - but, as far as I can tell, Clojure does not have anything similar.
This question is related to porting Clojure to iOS - which does not have garbage collection, but does have reference counting.