1
Напечатайте роли и сбивающее с толку поведение `coerce`
У меня есть тип, Id aи я пытаюсь предотвратить случайное принуждение, например, Id Doubleк Id Int. Если я правильно понимаю роли типов, следующее не должно компилироваться. {-# LANGUAGE RoleAnnotations #-} import Data.Coerce (coerce) type role Id nominal newtype Id a = Id String badKey :: Id Int badKey = coerce …