1------------------------------------------------------------------------------
2--                                                                          --
3--                         GNAT LIBRARY COMPONENTS                          --
4--                                                                          --
5--               A D A . I T E R A T O R . I N T E R F A C E S              --
6--                                                                          --
7--                                 S p e c                                  --
8--                                                                          --
9-- This specification is derived from the Ada Reference Manual for use with --
10-- GNAT.  In accordance with the copyright of that document, you can freely --
11-- copy and modify this specification,  provided that if you redistribute a --
12-- modified version,  any changes that you have made are clearly indicated. --
13--                                                                          --
14------------------------------------------------------------------------------
15
16generic
17   type Cursor;
18   with function Has_Element (Position : Cursor) return Boolean;
19   pragma Unreferenced (Has_Element);
20
21package Ada.Iterator_Interfaces is
22   pragma Pure;
23
24   type Forward_Iterator is limited interface;
25
26   function First
27     (Object : Forward_Iterator) return Cursor is abstract;
28   function Next
29     (Object   : Forward_Iterator;
30      Position : Cursor) return Cursor is abstract;
31
32   type Reversible_Iterator is limited interface and Forward_Iterator;
33
34   function Last
35     (Object : Reversible_Iterator) return Cursor is abstract;
36   function Previous
37     (Object   : Reversible_Iterator;
38      Position : Cursor) return Cursor is abstract;
39end Ada.Iterator_Interfaces;
40