Bug fix: found the cause of the infinite loop in the "Dao.Struct" module. The 'Dao.Struct.getData' function never backtracked, even when tree nodes were null, but the "Dao.Object.Struct" module was generally written to expect backtracking in the event of null tree nodes. However, instead of backtracking, the next iteration of 'Dao.Struct.structToData' was immediately called on the null node, which would in turn call more instances of 'Dao.Struct.structToData', none of which would ever backtrack, and would loop indefinitely. This was fixed by simply checking if a node was null and backtracking if it is.