<> <> DIRECTORY Atom, GenSym, IO; GenSymImpl: CEDAR PROGRAM IMPORTS Atom, IO EXPORTS GenSym = BEGIN count: REF INT _ NIL; Gen: PUBLIC PROC [prefix: CHARACTER _ 'A] RETURNS [a: ATOM] = {a _ Atom.MakeAtom[IO.PutFR["%g%g", IO.char[prefix], IO.int[count^ _ count^+1]]]}; Start: PROC = BEGIN a: ATOM _ Atom.MakeAtom["Spreitzer February 1, 1984 9:07:34 pm PST"]; count _ NARROW[Atom.GetProp[atom: a, prop: $GensymCount]]; IF count = NIL THEN Atom.PutProp[atom: a, prop: $GensymCount, val: count _ NEW [INT _ 0]]; END; Start[]; END.