<> <> <> <> <> <> <> DIRECTORY EditNotify USING [Change]; UndoEvent: CEDAR DEFINITIONS = BEGIN Event: TYPE = REF EventBody; EventBody: TYPE = RECORD [subevents: SubEvent]; SubEvent: TYPE = REF SubEventBody; SubEventBody: TYPE = RECORD [ next: SubEvent, undoProc: UndoProc, undoRef: REF Change ]; Change: TYPE = EditNotify.Change; <> UndoProc: TYPE = PROC [undoRef: REF Change, currentEvent: Event]; <> Create: PROC RETURNS [Event]; Note: PROC [event: Event, undoProc: UndoProc, undoRef: REF Change]; < to list of subevents>> Undo: PROC [undoEvent: Event, currentEvent: Event _ NIL]; <> <> <> Reset: PROC [event: Event]; <> <> Empty: PROC [event: Event] RETURNS [BOOL]; <> END.