with Text_IO; use Text_IO; package Int_Set is type Integer_Set is private; function Empty_Integer_Set return Integer_Set; function Has_Integer(Set : Integer_Set; Value : Integer) return Boolean; procedure Add_Integer(Set : in out Integer_Set; Value : in Integer); procedure Remove_Integer(Set : in out Integer_Set; Value : in Integer); private type List_Node; type List_Node_Access is access List_Node; type List_Node is record Value : Integer; Next : List_Node_Access; end record; type Integer_Set is record Head : List_Node_Access; end record; end Int_Set;