-- | Unique identifier class for use by non-deterministic (noise) and -- non-sharable (demand) unit generators. module Sound.SC3.UGen.UId where import Control.Monad import Data.Unique -- | A class indicating a monad that will generate a sequence of -- unique integer identifiers. class (Monad m) => UId m where generateUId :: m Int instance UId IO where generateUId = liftM hashUnique newUnique