1package Opt55 is
2
3   type Date is record
4      D : Float;
5   end record;
6
7   type Rec1 (Kind : Boolean := False) is record
8      case Kind is
9         when True => N : Natural;
10         when False => null;
11      end case;
12   end record;
13
14   type Rec2 (D : Positive) is record
15      R  : Rec1;
16      D1 : Date;
17      D2 : Date;
18   end record;
19
20   function F (C : Rec2; B : Boolean) return Date;
21
22end Opt55;
23