I need to define mutually-dependent vars. By this I mean that one var contains e.g. a vector with another var and vice versa. This is illustrated by the following code:
(declare a b)
(def a [1 b])
(def b [a 2])
But after loading this code I get this:
test=> (first a)
1
test=> (second a)
#<Unbound Unbound: #'test/b>
test=> (first b)
[1 #<Unbound Unbound: #'test/b>]
test=> (second b)
2
clearly, thats not how it should work. I understand that printing such structure will give stack overflow, but I don't need to print it. How should I do it?