redefined the procedure that was being treeified, the act of redefining the procedure
would free the tree that had been created thus far, causing a freed memory read.
The fix is to explicitly hold a reference the tree as it's being created, instead of
assuming that the procnode would keep a reference on it.