<> <> DIRECTORY Core, CoreClasses, CoreFlat, HashTable; CoreStructuralComparison: CEDAR DEFINITIONS = { FlattenAndCompare: PROC [ ctA, ctB: Core.CellType, wireHints, instanceHints: HashTable.Table <> <> ] RETURNS [isomorphic: BOOL]; <> DescendantWire: TYPE = REF DescendantWirePrivate; DescendantWirePrivate: TYPE = CoreFlat.FlatWireRec --RECORD [path: CoreFlat.PackedPath, wire: Core.Wire]--; DescendantCellInstance: TYPE = REF DescendantCellInstancePrivate; DescendantCellInstancePrivate: TYPE = CoreFlat.FlatInstanceRec --RECORD [path: CoreFlat.PackedPath, instance: CoreClasses.CellInstance]--; DescendantList: TYPE = LIST OF Descendant; Descendant: TYPE = REF ANY--actually UNION [DescendantWire, DescendantCellInstance]--; Warning: SIGNAL [ kind: WarningKind, fromA, fromB: DescendantList ]; WarningKind: TYPE = {stuck, difference}; <> }.