¿Por qué no es GeneralizedNewtypeDeriving un Safe Haskell?

Del manual de GHC, SecciónLenguaje seguro:

Módulo de control de límites. - Se garantiza que el código Haskell compilado utilizando el lenguaje seguro solo tendrá acceso a los símbolos que están disponibles públicamente a través de otras listas de exportación de módulos. Una parte importante de esto es que el código compilado seguro no puede examinar o crear valores de datos utilizando constructores de datos que no puede importar. Si un módulo M establece algunos invariantes mediante el uso cuidadoso de su lista de exportación, el código compilado utilizando el lenguaje seguro que importa M está garantizado para respetar esos invariantes. Por esto, Template Haskell yGeneralizedNewtypeDeriving están deshabilitados en el idioma seguro ya que pueden utilizarse para violar esta propiedad.

¿Cómo puede uno romper las invariantes de un módulo usandoGeneralizedNewtypeDeriving?

Respuestas a la pregunta(1)

Su respuesta a la pregunta