【发布时间】:2014-05-22 16:15:16
【问题描述】:
是否可以在 Haskell 中将函数箭头类型构造函数 (->) 仅应用于其右侧类型(例如:(-> a))以获得类型 * -> * 的类型构造函数?
【问题讨论】:
-
是的,我宁愿避免这样做,因为它会使事情变得更复杂一些。我几乎可以肯定我已经完成了。
-
原来是的,我确实需要一个新类型。如果您将其发布为答案,我会接受它,以便您获得荣誉。
-
-
@htbta 它有正确的类型,但它不满足另一个约束:他想将
(->)应用于它的第二个参数,而不是第一个。 -
@Daniel Wagner GHC 具有
(->) :: * -> * -> *和(,) :: * -> * -> *以及部分类型级应用程序(->) a :: * -> *和(,) a :: * -> *,但没有类型级部分(如(a ->)、@ 987654331@、(a,)或(,a))或类型级 lambda(例如?b a -> (->) a b)。所以使用newtype是唯一的选择。
标签: haskell types type-kinds