fsplay_delete is b0rked

Matthew Dempsky <[email protected]> 06 May 2004 23:20:00 -0500
Newsgroups gmane.lisp.scheme.pika.devel
Message-ID <[email protected]>
      /* delete
       * 
       * Have:
       * 
       *        T
       *     /     \
       *   _Tl     _Tr
       *
       * and want to remove T.
       * 
       * Removing T is the same as inserting _Tr after _Tl.
       */

Yes and no... it would be if insert_after preserved the children of
the node to be inserted, but it doesn't.  As it is, delete drops all
of Tr's children.

The two possible solutions to this are either to rewrite insert_after
(and insert_before for consistancy) to protect children from being
lost or add a new operation fsplay_join.  I'm leaning towards the
latter and plan on writing it unless someone thinks the
insert_(before|after) modification would be better.

-jivera