<> <> <> <> DIRECTORY SymbolTable: TYPE USING [Base], Symbols: TYPE USING [CSEIndex]; Types: DEFINITIONS = { SymbolTableBase: TYPE = SymbolTable.Base; Handle: TYPE = RECORD[ stb: SymbolTable.Base, sei: Symbols.CSEIndex]; <> OpaqueValue: PROC [type: Types.Handle, base: SymbolTable.Base] RETURNS [val: Types.Handle]; <<>> <> Assignable: PROC [typeL, typeR: Types.Handle] RETURNS [BOOLEAN]; Equivalent: PROC [type1, type2: Types.Handle] RETURNS [BOOLEAN]; }.