<> <> DIRECTORY Atom, GenSym, IO; GenSymImpl: CEDAR MONITOR IMPORTS Atom, IO EXPORTS GenSym = BEGIN List: TYPE = LIST OF CARDINAL; gens: List _ NIL; Gen: PUBLIC ENTRY PROC [prefix: CHARACTER _ 'A] RETURNS [a: ATOM] = { gens _ CONS[47, gens]; a _ Atom.MakeAtom[IO.PutFR["%g%g", IO.char[prefix], IO.int[LOOPHOLE[gens]]]]}; END.