<> <> <> <> GriffinRelation: DEFINITIONS = BEGIN AllPairProc: TYPE = PROC[leftPart, rightPart: CARDINAL]; Relation: TYPE = LONG POINTER TO RelationHead; RelationHead: TYPE = RECORD [first, last: LONG POINTER TO Pair]; Pair: TYPE = RECORD [link: LONG POINTER TO Pair, left, right: CARDINAL]; notFound: CARDINAL = 177777B; AddPair: PROC [relation: Relation, left, right: CARDINAL]; ForAllPairs: PROC [relation: Relation, Proc: AllPairProc]; Left: PROC [relation: Relation, right: CARDINAL] RETURNS [CARDINAL]; Right: PROC [relation: Relation, left: CARDINAL] RETURNS [CARDINAL]; CreateRelation: PROC RETURNS [Relation]; DestroyRelation: PROC [relation: Relation]; END.