<> <> <> <> <> <> DIRECTORY Rope; GGHistoryTypes: CEDAR DEFINITIONS = BEGIN HistoryEvent: TYPE = REF HistoryEventObj; HistoryEventObj: TYPE = RECORD [name: Rope.ROPE, index: INT, subevents: LIST OF SubEvent]; SubEvent: TYPE = REF SubEventObj; SubEventObj: TYPE = RECORD [ historyProc: HistoryProc, -- proc which implements undo of this subevent historyData: REF Change -- data for undo of this subevent ]; Change: TYPE; -- really GGHistory.Change. Avoids compilation dependencies. <> HistoryProc: TYPE = PROC [historyData: REF Change, currentEvent: HistoryEvent]; <> HistoryToolObj: TYPE; -- really GGHistory.HistoryToolObj. Avoids compilation dependencies. <> <<>> END.