This is turning into a major effort to separate runtime data collection from model construction. Many things don't work yet, but at least it's not as broken as it used to be.
Initial support for hashconsing (non-circular) models.
Added back support for array literals.
Bringing back support for client objects; not quite done yet.
A couple more bug fixes; getting closer...
Removing spurious debugger statement.
Check for circularity before hashconsing children to avoid nontermination.
Fix remaining test cases.
Hashconsing now seems to mostly work.