ANY NONE
deferred class interface AVL_HELPER[E->COMPARABLE]

feature(s) from AVL_HELPER
   -- Interface used by descendants:

   new_node (e: E): AVL_NODE[E]
      require
         e /= Void
      ensure
         --old lost_nodes.count > 0 implies
         --   (lost_nodes.count = old lost_nodes.count - 1
         --    and then Result = old lost_nodes.last)

   discard_node (n: AVL_NODE[E])
      require
         n /= Void
      ensure
         discarded: lost_nodes /= Void implies lost_nodes.count = old lost_nodes.count + 1

feature(s) from AVL_HELPER
   -- Internals:

   lost_nodes: COLLECTION[AVL_NODE[E]]
      -- Keeps discarded nodes to avoid memory leaks. Should be a once function. May return Void if lost
      -- nodes are not kept.

   a_new_node (e: E): AVL_NODE[E]
      require
         e /= Void
      ensure
         Result /= Void;
         Result.item = e



end of deferred AVL_HELPER[E->COMPARABLE]