1package Validity_Check3 is
2   procedure Call_All;
3
4   type Rec_1 is private;
5   procedure Proc_Vis_Rec_1 (Param : Rec_1);
6
7   type Rec_2 (<>) is private;
8   procedure Proc_Vis_Rec_2 (Param : Rec_2);
9
10   type Rec_3 (<>) is private;
11   procedure Proc_Vis_Rec_3 (Param : Rec_3);
12
13   type Rec_4 (Discr : Integer) is private;
14   procedure Proc_Vis_Rec_4 (Param : Rec_4);
15
16   type Tag_1 is tagged private;
17   procedure Proc_Vis_Tag_1 (Param : Tag_1);
18   procedure Proc_Vis_CW_1  (Param : Tag_1'Class);
19
20   type Tag_2 (<>) is tagged private;
21   procedure Proc_Vis_Tag_2 (Param : Tag_2);
22   procedure Proc_Vis_CW_2  (Param : Tag_2'Class);
23
24   type Tag_3 (<>) is tagged private;
25   procedure Proc_Vis_Tag_3 (Param : Tag_3);
26   procedure Proc_Vis_CW_3  (Param : Tag_3'Class);
27
28   type Tag_4 (Discr : Integer) is tagged private;
29   procedure Proc_Vis_Tag_4 (Param : Tag_4);
30   procedure Proc_Vis_CW_4  (Param : Tag_4'Class);
31
32   type Tag_5 is new Tag_1 with private;
33   procedure Proc_Vis_Tag_5 (Param : Tag_5);
34   procedure Proc_Vis_CW_5  (Param : Tag_5'Class);
35
36   type Tag_6 is new Tag_4 with private;
37   procedure Proc_Vis_Tag_6 (Param : Tag_6);
38   procedure Proc_Vis_CW_6  (Param : Tag_6'Class);
39
40private
41   type Rec_1 is record
42      Comp_1 : Integer;
43      Comp_2 : Boolean;
44   end record;
45
46   procedure Proc_Priv_Rec_1 (Param : Rec_1);
47
48   type Rec_2 is record
49      Comp_1 : Integer;
50      Comp_2 : Boolean;
51   end record;
52
53   procedure Proc_Priv_Rec_2 (Param : Rec_2);
54
55   type Rec_3 (Discr : Integer) is record
56      Comp_1 : Integer;
57      Comp_2 : Boolean;
58   end record;
59
60   procedure Proc_Priv_Rec_3 (Param : Rec_3);
61
62   type Rec_4 (Discr : Integer) is record
63      Comp_1 : Integer;
64      Comp_2 : Boolean;
65   end record;
66
67   procedure Proc_Priv_Rec_4 (Param : Rec_4);
68
69   type Tag_1 is tagged record
70      Comp_1 : Integer;
71      Comp_2 : Boolean;
72   end record;
73
74   procedure Proc_Priv_Tag_1 (Param : Tag_1);
75   procedure Proc_Priv_CW_1  (Param : Tag_1'Class);
76
77   type Tag_2 is tagged record
78      Comp_1 : Integer;
79      Comp_2 : Boolean;
80   end record;
81
82   procedure Proc_Priv_Tag_2 (Param : Tag_2);
83   procedure Proc_Priv_CW_2  (Param : Tag_2'Class);
84
85   type Tag_3 (Discr : Integer) is tagged record
86      Comp_1 : Integer;
87      Comp_2 : Boolean;
88   end record;
89
90   procedure Proc_Priv_Tag_3 (Param : Tag_3);
91   procedure Proc_Priv_CW_3  (Param : Tag_3'Class);
92
93   type Tag_4 (Discr : Integer) is tagged record
94      Comp_1 : Integer;
95      Comp_2 : Boolean;
96   end record;
97
98   procedure Proc_Priv_Tag_4 (Param : Tag_4);
99   procedure Proc_Priv_CW_4  (Param : Tag_4'Class);
100
101   type Tag_5 is new Tag_1 with record
102      Comp_3 : Integer;
103      Comp_4 : Boolean;
104   end record;
105
106   procedure Proc_Priv_Tag_5 (Param : Tag_5);
107   procedure Proc_Priv_CW_5  (Param : Tag_5'Class);
108
109   type Tag_6 is new Tag_4 with record
110      Comp_3 : Integer;
111      Comp_4 : Boolean;
112   end record;
113
114   procedure Proc_Priv_Tag_6 (Param : Tag_6);
115   procedure Proc_Priv_CW_6  (Param : Tag_6'Class);
116end Validity_Check3;
117