Good work!
if 'treewise could tell that it had a cyclic data structure, it would also be a more robust option
Do you mean cyclic structure like this?
arc> (= xs (list 1)) (1) arc> (do1 nil (= (cdr xs) xs)) nil arc> (xs 1000) 1
In a more general sense, I wear my opinion about treewise on my sleeve: http://arclanguage.org/item?id=12115.