<> <> <> <> <> DIRECTORY IO USING [STREAM], Rope USING [ROPE]; Core: CEDAR DEFINITIONS = BEGIN <> <> <> ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; Properties: TYPE = REF PropertyRec; PropertyRec: TYPE; <> Wire: TYPE = REF WireRec; WireRec: TYPE = RECORD [ elements: WireSequence _ NIL, properties: Properties _ NIL]; WireSequence: TYPE = REF WireSequenceRec; WireSequenceRec: TYPE = RECORD [c: SEQUENCE size: NAT 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: WireSequence, data: REF ANY _ NIL, properties: Properties _ NIL]; <> END.