1generic 2 3 type T is (<>); 4 with function MAX_ADD(X : T; I : INTEGER) return T; 5 6package Discr16_G is 7 8 LO : T := T'val(T'pos(T'first)); 9 HI : T := T'val(T'pos(MAX_ADD(LO, 15))); 10 11 type A2 is array(T range <>) of T; 12 13 type R2(D : T) is 14 record 15 C : A2(LO..D); 16 end record; 17 18end; 19