<> <> DIRECTORY Core; CoreTypeCache: CEDAR DEFINITIONS = BEGIN OPEN Core; <> <> <> TypeCache: TYPE = REF TypeCacheRec; TypeCacheRec: TYPE; Narrow: PROC [asAny: REF ANY] RETURNS [typeCache: TypeCache]; MakeProc: TYPE = PROC [design: Design, args: REF ANY] RETURNS [cellType: CellType]; CompareProc: TYPE = PROC [args1, args2: REF ANY] RETURNS [BOOL]; CreateCache: PROC [make: MakeProc, compare: CompareProc] RETURNS [typeCache: TypeCache]; Ensure: PROC [design: Design, typeCache: TypeCache, args: REF ANY] RETURNS [cellType: CellType]; END.