代表角色
型別函式的引數引數的示例:
data List a = Nil | Cons a (List a)
type family DoNotInspect x
type instance DoNotInspect x = List x
這裡 x
是引數化的,因為要確定將 DoNotInspect
應用於型別引數的結果,型別函式不需要檢查 x
。
在這種情況下,x 的作用是具有代表性的。我們可以使用 RoleAnnotations
擴充套件宣告該角色:
type role DoNotInspect representational