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