1package Discr10 is 2 3 subtype Index is Natural range 0 .. 150; 4 5 type List is array (Index range <>) of Integer; 6 7 type R (D1 : Boolean := True; D2 : Boolean := False; D3 : Index := 0) is 8 record 9 case D2 is 10 when True => 11 L : List (1 .. D3); 12 case D1 is 13 when True => I : Integer; 14 when False => null; 15 end case; 16 when False => 17 null; 18 end case; 19 end record; 20 21 function Get (X : R) return R; 22 23end Discr10; 24