Unique identifiers - including a null Id. \begin{code} module Identify where nullId :: Ident nullId = IdentS "" data Ident = IdentS String deriving (Eq,Ord,Read,Show) class Identifiable a where identify :: a -> Ident instance Identifiable String where identify s = IdentS s instance Identifiable Int where identify n = IdentS $ show n \end{code}