83
procedure Change_Address
  (SSN  : in SSN_Type;
   Home : in Address_Type) is
   procedure Set_Home (E : in out Employee_Type) is
   begin
      E.Home := Home;  --benign change
   end;
   Position : constant Cursor :=
     SSN_Keys.Find (Employees, Key => SSN); --OK
begin
   if Has_Element (Position) then
      SSN_Keys.Update_Element_Preserving_Key
        (Container => Employees,
         Position  => Position,
         Process   => Set_Home’Access);
   end if;
end Op;