<> <> <> Triples: CEDAR DEFINITIONS = BEGIN <> Item: TYPE = REF ANY; Triple: TYPE = REF READONLY TripleRec; TripleRec: TYPE = RECORD[att, obj, val: Item]; nullTripleRec: TripleRec = [Any, Any, Any]; <> Any: Item = NIL; <> Make, Erase: PROC[att, obj, val: Item]; Is: PROC[att, obj, val: Item _ Any] RETURNS[BOOLEAN]; Select: PROC[att, obj, val: Item _ Any] RETURNS[Item]; <> <> <> SelectCandidate: PROC[att: Item, objCandidate: LONG CARDINAL] RETURNS [ obj, val: Item ]; <> Foreach: PROC[att, obj, val: Item, proc: ForeachProc]; ForeachProc: TYPE = PROC[trip: TripleRec] RETURNS [continue: BOOLEAN_TRUE]; <> ArgFault: ERROR[att, obj, val: Item]; END.