Copyright (C) 1994, Digital Equipment Corp. MODULE; IMPORT Thread, Fmt; VAR sequencerMutex: Thread.Mutex; VAR sequencer: INTEGER; PROCEDURE Unique Identifier (): TEXT = BEGIN RETURN "A" & Fmt.Int (Integer()); END Identifier; PROCEDUREInteger (): INTEGER = BEGIN LOCK sequencerMutex DO sequencer := sequencer + 1; RETURN sequencer; END; END Integer; BEGIN sequencer := IntegerNever; sequencerMutex := NEW (MUTEX); END Unique.