在单例中捕获类型类约束的最佳方法是什么?
例如,让我们说我有类型,种类和类
singletons
[d|
data Names star = Names star
|]
class HasRepr a where
repr :: proxy a -> String
我希望能够构建像
这样的类型type X = 'Names Int
检索他们的单身人士
singX :: Sing X
singX = sing
然后将其破坏为其表示
reprX :: String
reprX (SNames sTy) = repr sTy
但是如果我概括一下它就会失败并出现像
这样的错误Could not deduce (HasRepr n2) arising from a use of ‘repr’
from the context ...
有没有办法让这项工作?