Opaque unique identifiers (identificadores únicos opacos) é um recurso utilizado em programação funcional, especificamente em monadas primitivas, para garantir a unicidade de valores em um determinado contexto. Esses identificadores são gerados de forma automática e não podem ser acessados diretamente pelo programador. Eles são utilizados como mecanismo de proteção contra erros e para garantir a integridade dos dados. O pacote haskell-prim-uniq é uma biblioteca que  fornece suporte para trabalhar com esses identificadores únicos opacos em aplicações Haskell. 