package Opt55 is type Date is record D : Float; end record; type Rec1 (Kind : Boolean := False) is record case Kind is when True => N : Natural; when False => null; end case; end record; type Rec2 (D : Positive) is record R : Rec1; D1 : Date; D2 : Date; end record; function F (C : Rec2; B : Boolean) return Date; end Opt55;