Here is an example of abstract sets implemented by both arrays and lists, Gnat (3.01 - win95) seems to have problems dispatching the 'unit' call in the convert subprogram. Another problem is that it needs to controlled types to be declared at the library level - any ideas ? I enclose the sources of 9 units: abstract_sets - spec and body array_sets - spec and body list_sets - spec and body convert - convert routine - here is the 'unit' error try - a simple try program - problem with controlled types.