<> <> <> <> <> <> RefTab: CEDAR DEFINITIONS = BEGIN Ref: TYPE = REF RefTabRep; RefTabRep: PUBLIC TYPE = MONITORED RECORD [mod: CARDINAL, size: INT, data: REF Seq]; Seq: TYPE = RECORD[nodes: SEQUENCE max: SeqIndex OF Node]; SeqIndex: TYPE = CARDINAL[0..4000); Node: TYPE = REF NodeRep; NodeRep: TYPE = RECORD [key: Key, val: Val, next: Node]; Key: TYPE = REF; Val: TYPE = REF; Create: PROC [mod: SeqIndex _ 17] RETURNS [Ref]; <> GetSize: PROC [x: Ref] RETURNS [INT]; <> Fetch: PROC [x: Ref, key: Key] RETURNS [found: BOOLEAN, val: Val]; <> <> <> Replace: PROC [x: Ref, key: Key, val: Val] RETURNS [BOOLEAN]; <> <> Store: PROC [x: Ref, key: Key, val: Val] RETURNS [BOOLEAN]; <> <> Insert: PROC [x: Ref, key: Key, val: Val] RETURNS [BOOLEAN]; <> <> Delete: PROC [x: Ref, key: Key] RETURNS [BOOLEAN]; <> <> Pairs: PROC [x: Ref, action: EachPairAction] RETURNS [BOOLEAN]; <> <> <> <> EachPairAction: TYPE = PROC [key: Key, val: Val] RETURNS [quit: BOOLEAN]; END.