【发布时间】:2016-09-26 03:49:36
【问题描述】:
假设我有一些类型:
newtype Foo a b = Foo { getFoo :: SomeStructure b }
即a 是一种幻象类型,仅用于编译时检查。
但是,我不想到处使用幻像类型。它在我的代码中并不是普遍有用的。所以我想做类似的事情:
type FooUnrestricted b = Foo Anything b
我应该用什么代替Anything?我需要一些语言扩展吗?
编辑:我意识到我可以简单地使用(),它会回答我的问题。但实际的一点是,我有对a 施加约束的函数,我希望它们始终得到满足。
【问题讨论】:
-
也许你可以使用
coerce?
标签: haskell phantom-types