<> <> DIRECTORY Collections, PairCollections; HashTables: CEDAR DEFINITIONS = {OPEN Collections, PairCollections; HashTable: TYPE ~ REF HashTablePrivate; HashTablePrivate: TYPE; Decider: TYPE ~ PROC [MaybeValue] RETURNS [MaybeValue]; Create: PROC [space: Space] RETURNS [HashTable]; Map: PROC [ht: HashTable, arg: Value] RETURNS [MaybeValue]; Store: PROC [ht: HashTable, arg, res: Value] RETURNS [same: HashTable]; Delete: PROC [ht: HashTable, arg: Value] RETURNS [had: BOOL]; Update: PROC [ht: HashTable, arg: Value, Decide: Decider] RETURNS [same: HashTable]; Size: PROC [ht: HashTable] RETURNS [INT]; Scan: PROC [ht: HashTable, Test: Tester] RETURNS [same: HashTable, mp: MaybePair]; }.