1with Ada.Iterator_Interfaces;
2
3package Renaming16_Pkg is
4
5   type Results_Type is tagged null record;
6
7   type Cursor is access constant Results_Type'Class;
8
9   not overriding
10   function Has_Element (Position : Cursor) return Boolean;
11
12   package Base_Iterators is
13      new Ada.Iterator_Interfaces (Cursor, Has_Element);
14
15   -- Can be with null record
16   type Bindings_Iterator is
17     new Base_Iterators.Forward_Iterator with
18      record
19         Ref: Cursor;
20      end record;
21
22   not overriding
23   function Create_Bindings_Iterator
24     (Results : in out Results_Type'Class)
25     return Bindings_Iterator;
26
27   overriding function First (Object: Bindings_Iterator) return Cursor;
28   overriding function Next  (Object: Bindings_Iterator; Position: Cursor) return Cursor;
29
30   function Whatever return Boolean;
31   subtype Bindings_Query_Results_Type is Results_Type
32     with Dynamic_Predicate => Whatever;
33
34end Renaming16_Pkg;
35