generic
with package Tree_Types is new Generic_Tree_Types (<>);
use Tree_Types;
Null_Node : Node_Access;
with function Parent (Node : Node_Access) return Node_Access is <>;
with procedure Set_Parent (Node : Node_Access; Parent : Node_Access) is <>;
with function Left (Node : Node_Access) return Node_Access is <>;
with procedure Set_Left (Node : Node_Access; Left : Node_Access) is <>;
with function Right (Node : Node_Access) return Node_Access is <>;
with procedure Set_Right (Node : Node_Access; Right : Node_Access) is <>;
with function Color (Node : Node_Access) return Color_Type is <>;
with procedure Set_Color (Node : Node_Access; Color : Color_Type) is <>;
package Ada.Containers.Red_Black_Trees.Generic_Operations is
pragma Pure;
function Min (Node : Node_Access) return Node_Access;
function Max (Node : Node_Access) return Node_Access;
procedure Check_Invariant (Tree : Tree_Type);
function Next (Node : Node_Access) return Node_Access;
function Previous (Node : Node_Access) return Node_Access;
procedure Move (Target, Source : in out Tree_Type);
generic
with function Is_Equal (L, R : Node_Access) return Boolean;
function Generic_Equal (Left, Right : Tree_Type) return Boolean;
procedure Delete_Node_Sans_Free
(Tree : in out Tree_Type;
Node : Node_Access);
generic
with procedure Process (Node : Node_Access) is <>;
procedure Generic_Iteration (Tree : Tree_Type);
generic
with procedure Process (Node : Node_Access) is <>;
procedure Generic_Reverse_Iteration (Tree : Tree_Type);
generic
with function New_Node return Node_Access is <>;
procedure Generic_Read (Tree : in out Tree_Type; N : Count_Type);
procedure Rebalance_For_Insert
(Tree : in out Tree_Type;
Node : Node_Access);
end Ada.Containers.Red_Black_Trees.Generic_Operations;