Digite papéis e comportamento confuso ao `coagir`

Eu tenho um tipo Id ae estou tentando evitar a coação acidental, por exemplo, um Id Doublepara um Id Int. Se eu entendo as funções de digitação corretamente, o seguinte não deve ser compilado. {-# LANGUAGE RoleAnnotations #-} import Data.Coerce (coerce) type role Id nominal newtype Id a = Id...