with Unchecked_Deallocation;

package body Prot2_Pkg2 is

   protected type Rec is
   private
       M : T;
   end Rec;

   protected body Rec is end;

   procedure Create (B : out Id) is
   begin
       B := new Rec;
   end;

   procedure Delete (B : in out Id) is
      procedure Free is new Unchecked_Deallocation(Object => Rec, Name => Id);
   begin
      Free (B);
   end;

end Prot2_Pkg2;