started using valgrind, so a.out.core, vgcore*, and out.txt (because this is done in a vm, so i have to redirect output) are all ignored!

found the problem in rotate[left|right].  I was properly setting the parent node of the passed node to it's new child, which was doing bad things (TM).

balance seems to work...