| package Class_Wide4_Pkg is | |
| type Conditional_Interface is limited interface; | |
| type Data_Object is tagged null record; | |
| function Is_Valid | |
| (This : in Conditional_Interface) | |
| return Boolean is abstract; | |
| procedure Do_Stuff | |
| (This : in out Conditional_Interface) is abstract | |
| with | |
| Pre'Class => This.Is_Valid; | |
| procedure Do_Stuff_Access | |
| (This : not null access Conditional_Interface) is abstract | |
| with | |
| Pre'Class => This.Is_Valid; | |
| end Class_Wide4_Pkg; |