Set:
CEDAR
DEFINITIONS =
BEGIN
Handle: TYPE = REF HandleRec;
HandleRec:
TYPE =
RECORD [
elements: LIST OF REF ANY];
EachEltAction: TYPE = PROC[e: REF ANY] RETURNS [stop: BOOL ← FALSE];
Element: TYPE = REF ANY;
New:
PROC []
RETURNS [Handle];
Put: PROC[han: Handle, e: REF ANY] RETURNS [BOOL];
Enumerate: PROC[han: Handle, action: EachEltAction] RETURNS [stop: BOOL];
Cardinality: PROC[han: Handle] RETURNS [NAT];
Nth: PROC[han: Handle, n: NAT] RETURNS [REF ANY];
Difference: PROC[han1, han2: Handle] RETURNS [Handle];
Remove: PROC[han: Handle, e: REF ANY] RETURNS [BOOL];
In: PROC[han: Handle, e: REF ANY] RETURNS [BOOL];
END.