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 (Id "I point to a …