package Protected_Shared_Natural is protected type Shared_Natural(Initial_Value : Natural) is function Read return Natural; procedure Write (New_Value : in Natural); procedure Increment (By : in Natural); private The_Data : Natural := Initial_Value; end Shared_Natural; end Protected_Shared_Natural;