1package Limited3_Pkg is
2
3   type Limited_Rec is limited
4    null record;
5
6   type Var_Rec (X : Integer) is record
7      Name : String (1 .. X);
8      Tag  : Limited_Rec;
9   end record;
10
11   type Rec (D : Boolean := True) is record
12      case D is
13         when True => L : Limited_Rec;
14         when False => I : Integer;
15      end case;
16   end record;
17
18   function F (I : Integer) return Rec;
19
20   function FS (X : Integer) return Var_Rec;
21
22   type Rec2 (D : Boolean := True) is record
23      case D is
24         when True => L : access Limited_Rec;
25         when False => I : Integer;
26      end case;
27   end record;
28
29   function F2 (I : Integer) return Rec2;
30end Limited3_Pkg;
31