代表角色
类型函数的参数参数的示例:
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