with unchecked_deallocation; package body Generic_VecVecs is procedure Clear ( v : in out VecVec ) is begin for i in v'range loop Vectors.Clear(v(i)); end loop; end Clear; procedure Shallow_Clear ( v : in out Link_to_VecVec ) is procedure free is new unchecked_deallocation(VecVec,Link_to_VecVec); begin free(v); end Shallow_Clear; procedure Deep_Clear ( v : in out Link_to_VecVec ) is begin if v /= null then Clear(v.all); Shallow_Clear(v); end if; end Deep_Clear; end Generic_VecVecs;