package Events.Listeners is
type Event_Listener is limited interface;
type A_Event_Listener is access all Event_Listener'Class;
-- If 'evt' is returned null then the event was consumed.
procedure Handle_Event( this : access Event_Listener;
evt : in out A_Event;
resp : out Response_Type ) is abstract;
-- Returns a string that identifies the event listener object.
function To_String( this : access Event_Listener ) return String is abstract;
end Events.Listeners;