<> <> <> <> <> <> <> DIRECTORY EditNotify USING [Change]; UndoEvent: CEDAR DEFINITIONS = BEGIN Ref: 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: Ref]; <> Create: PROC RETURNS [Ref]; Note: PROC [event: Ref, undoProc: UndoProc, undoRef: REF Change]; < to list of subevents>> Undo: PROC [undoEvent: Ref, currentEvent: Ref _ NIL]; <> <> <> Reset: PROC [event: Ref]; <> <> Empty: PROC [event: Ref] RETURNS [BOOL]; <> END.