1package Discr46 is
2
3   type Enum is (One, Two, Three);
4   for Enum use (One => 1, Two => 2, Three => 3);
5
6   type Rec1 (D : Boolean := False) is record
7      case D is
8         when False => null;
9         when True => T : Integer;
10      end case;
11   end record;
12
13   type Rec2 is record
14      R : Rec1;
15      C : Character;
16   end record;
17
18   type Arr is array (Enum) of Rec2;
19
20   A : Arr;
21
22   function F (Id : Enum) return Integer;
23
24end Discr46;
25