Pisz role i mylące zachowanie przez „przymus”

Mam typ Id ai staram się zapobiec przypadkowemu Zmuszanie, np Id Doubledo Id Int. Jeśli dobrze rozumiem role typu, poniższe nie powinny się kompilować. {-# LANGUAGE RoleAnnotations #-} import Data.Coerce (coerce) type role Id nominal newtype Id a = Id String badKey :: Id Int badKey = coerce (Id...