Escriba roles y comportamientos confusos por `coerce`

Tengo un tipo Id ay estoy tratando de evitar la coerción accidental, por ejemplo, un Id Doublea un Id Int. Si entiendo los tipos de letra correctamente, no se debe compilar lo siguiente. {-# LANGUAGE RoleAnnotations #-} import Data.Coerce (coerce) type role Id nominal newtype Id a = Id...