<> <> <> <> <> DIRECTORY IO USING [STREAM], Properties USING [PropList], Rope USING [ROPE]; Core: CEDAR DEFINITIONS = BEGIN OPEN ImplementationProperties: Properties; <> <> <> ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; Properties: TYPE = PRIVATE ImplementationProperties.PropList; <> <> <> <> Wire: TYPE = REF WireRec; WireRec: TYPE = RECORD [ properties: Properties _ NIL, elements: SEQUENCE size: NAT OF Wire]; Wires: TYPE = LIST OF Wire; <> <> CellClass: TYPE = REF CellClassRec; CellClassRec: TYPE = RECORD [ name: ROPE, recast: RecastProc _ NIL, properties: Properties _ NIL]; RecastProc: TYPE = PROC [me: CellType] RETURNS [new: CellType]; <> <> <> <> CellType: TYPE = REF CellTypeRec; CellTypeRec: TYPE = RECORD [ class: CellClass, public: Wire, data: REF ANY _ NIL, properties: Properties _ NIL]; END.