Saisissez les rôles et les comportements déroutants par `coercition`

J'ai un type Id aet j'essaie d'empêcher toute contrainte accidentelle, par exemple, un Id Doubleà un Id Int. Si je comprends bien les rôles de type, les éléments suivants ne doivent pas être compilés. {-# LANGUAGE RoleAnnotations #-} import Data.Coerce (coerce) type role Id nominal newtype Id a =...