1package Class_Wide4_Pkg is 2 3 type Conditional_Interface is limited interface; 4 5 type Data_Object is tagged null record; 6 7 function Is_Valid 8 (This : in Conditional_Interface) 9 return Boolean is abstract; 10 11 procedure Do_Stuff 12 (This : in out Conditional_Interface) is abstract 13 with 14 Pre'Class => This.Is_Valid; 15 16 procedure Do_Stuff_Access 17 (This : not null access Conditional_Interface) is abstract 18 with 19 Pre'Class => This.Is_Valid; 20 21end Class_Wide4_Pkg; 22