| generic | |
| type T is (<>); | |
| with function MAX_ADD(X : T; I : INTEGER) return T; | |
| package Discr16_G is | |
| LO : T := T'val(T'pos(T'first)); | |
| HI : T := T'val(T'pos(MAX_ADD(LO, 15))); | |
| type A2 is array(T range <>) of T; | |
| type R2(D : T) is | |
| record | |
| C : A2(LO..D); | |
| end record; | |
| end; |