<> <> DIRECTORY LichenDataStructure, Rope; Lichen: CEDAR DEFINITIONS = {OPEN LichenDataStructure; ROPE: TYPE ~ Rope.ROPE; Wire: TYPE ~ LichenDataStructure.Wire; RefSet: TYPE ~ REF LichenDataStructure.Set; KeyProc: TYPE ~ PROC [ <> RipoutDebugging: PROC, <> ExternallyMerged: PROC [portsA: REF ANY], UndistinguishPorts: PROC, ImportAtomicWireOnceToRoot: PROC [name: ROPE] RETURNS [Wire], ImportAtomicWireOnce: PROC [ctA, fromA: REF ANY] RETURNS [Wire], DeduceWireStructure: PROC, CleanupDesign: PROC, Group: PROC [iName, tName: ROPE, parentA, sibsA: REF ANY], ExpandInstance: PROC [instA: REF ANY], ExpandType: PROC [tName: ROPE], FlattenArrays: PROC, RaiseGCs: PROC [childA, gcsA: REF ANY] RETURNS [RefSet--of raised instances--], ShortenArrayInstance: PROC [inst: REF ANY, end: ArrayEnd, sDim: Dim3 _ Z, by: NAT _ 1], LowerArrayStructure: PROC [outerA: REF ANY], SimilarizeArrays: PROC, <> PrefixifyDesign: PROC, InheritNames: PROC [renamesFileName: ROPE], CleanupNames: PROC, DropPhysical: PROC, <> DeduceArrayness: PROC [ctsA: REF ANY], MinimizeArrayPeriods: PROC, <> Subcells: PROC [parentName: ROPE, instanceTypes, instanceNames: REF ANY] RETURNS [--constant--RefSet], <> At: PROC [INT], ReadExt: PROC [rootCellFileName, renamingFileName: ROPE, labelCellTypes: REF ANY], ReadFunsim: PROC [rootName: ROPE] ]; Do: PROC [prefix, suffix: ROPE, Key: KeyProc, from, to: INT]; }.