1package Tagged5 is
2
3    type T is limited interface;
4
5    not overriding function Element
6      (Self  : T;
7       Index : Positive)
8       return Integer is abstract
9       with Pre'Class => Index + Index ** 2 in 1 .. 10;
10
11    function First
12      (Self  : T'Class)
13       return Integer
14         is (Self.Element (1));
15
16    procedure Dummy;
17
18end Tagged5;
19