<<--File: Set.mesa>> <> <> <<>> <<--NB: This is only a TEMPORARY patch, should retrieved from ARCHIVE (Cedar5.2)>> 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.