package Tagged5 is type T is limited interface; not overriding function Element (Self : T; Index : Positive) return Integer is abstract with Pre'Class => Index + Index ** 2 in 1 .. 10; function First (Self : T'Class) return Integer is (Self.Element (1)); procedure Dummy; end Tagged5;