declare class EventManager attr handlers meth init handlers:=nil end meth event(E) handlers:= {Map @handlers fun {$ Id#F#S} Id#F#{F E S} end} end meth add(F S ?Id) Id={NewName} handlers:=Id#F#S|@handlers end meth delete(DId ?DS) handlers:={List.partition @handlers fun {$ Id#F#S} DId==Id end [_#_#DS]} end end