<> <> <> <> <<>> DIRECTORY Basics USING [Comparison]; GList: CEDAR DEFINITIONS = BEGIN <<>> <> <> <> List: TYPE = REF ANY; <> Comparison: TYPE = Basics.Comparison; CompareProc: TYPE = PROC [ref1: REF ANY, ref2: REF ANY] RETURNS [Comparison]; <> EqLists: PROC [l1, l2: List] RETURNS [BOOL]; <> <<>> Member: PROC [ref: REF ANY, list: List] RETURNS [BOOL]; <> <> Append: PROC [l1: List, l2: List _ NIL] RETURNS [List]; <> <<>> Copy: PROC [list: List] RETURNS [List]; <> <<>> Reverse: PROC [list: List] RETURNS [List]; <> << >> Remove: PROC [ref: REF ANY, list: List] RETURNS [List]; <> <<>> Union: PROC [l1, l2: List] RETURNS [List]; <> <<>> Intersection: PROC [l1, l2: List] RETURNS [List]; <> <<>> ListDifference: PROC [l1, l2: List] RETURNS [List]; <> <> Nconc: PROC [l1, l2: List] RETURNS [List]; <> <<>> DReverse: PROC [list: List] RETURNS [List]; <> DRemove: PROC [ref: REF ANY, list: List] RETURNS [List]; <> <<>> DSubst: PROC [new, old: REF ANY, list: List] RETURNS [List]; <> <> NthTail: PROC [list: List, n: INT] RETURNS [List]; <> < Length[list].>> <<>> NthElement: PROC [list: List, n: INT] RETURNS [REF ANY]; <> <> <> <> Length: PROC [list: List] RETURNS [INT]; <> Subst: PROC [new, old: REF ANY, list: List] RETURNS [List]; <> <