问题标签 [constraint-kinds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
197 浏览

haskell - Haskell Constraint Kinds - 默认实现的默认约束

标题:我想为通过约束参数化的类方法提供默认实现,该方法使用该约束的默认实例。

考虑以下:

这无法编译并出现以下错误:

从我的角度来看,它应该使用默认约束Show,这将允许它编译。是否有任何原因这不起作用,或者任何人都可以提出一个好的方法来实现这一点?

0 投票
2 回答
139 浏览

haskell - 约束元组的可键入实例

0 投票
2 回答
111 浏览

haskell - 证明约束适用于产品的组件,因为它适用于产品

我有一个类C,其中包含一种类型和元组的实例。

使用普通DictGADT 捕获约束

是否可以从C a证明C (a, b)

我怀疑直接的答案是“不”,因为fstDict Dict = Dict这还不够,而且几乎没有其他可能性。有什么办法可以改变C产品组件的约束从对产品的约束中恢复?

我可能是错误地试图完成与最密切相关的问题相同的事情,但是我有幸Dict从该类别的一端或两端要求一个。

0 投票
1 回答
296 浏览

haskell - 带有 DataKinds 的 HList,种类不可推广

我有这个代码片段,它使用了大量的 GHC 扩展:

GHC 抱怨说:

为什么我不能晋升HList为一种?我使用 GHC7.8.27.11.

当然,使用内置的'[]作品就好了:

我想使用我自己的HList而不是'[]因为实际HList支持附加并且看起来像这样:

编辑:主要目标是让 GHC 推断

这样我就可以写了

我曾希望为附加类型级别列表添加显式表示可以帮助我实现这一目标。还有其他方法可以说服 GHC 吗?

0 投票
3 回答
958 浏览

haskell - 何时(如果有的话)可以部分应用类型同义词?

显然有点心不在焉,我写如下内容:

只有在成功编译之后,我才意识到这实际上不应该Baz工作:被定义为带有一个参数的类型同义词,但在这里我使用它没有直接参数。Type synonym ‘Baz’ should have 1 argument, but has been given none当我尝试这样的事情时,通常 GHC 会对我吠叫。

现在,不要误会我的意思:我真的很希望能够写出它,并且很容易看出它在这个特定示例中是如何工作的(简单WithBar的内联会产生签名naim :: (Foo u, Bar u ~ ()) => IO u,这当然很好),但是我不明白为什么它在这里实际上是这样工作的。ghc-7.8.2允许这样做可能只是一个错误吗?

0 投票
2 回答
326 浏览

haskell - 什么是实物签名约束

如果我检查我kind得到Maybe这个:

Monad现在,如果我检查我得到的那种:

那里有什么Constraint以及为什么需要它?为什么不只是这个* -> *

0 投票
1 回答
755 浏览

haskell - Where is the Constraint kind defined?

I'm not familiar with GHC internals but I have a couple questions about ConstraintKinds.

It says from GHC.Exts that

which is misleading because Constraint is a kind of sort BOX. This brings us to the first question: we can import and export kinds? How does that work?

Please correct me on this next part if I'm totally off. From trying out different imports and glancing around at the source on hackage, my guess is that GHC.Exts imports Constraint from GHC.Base, who in turn, imports it from GHC.Prim. But I do not see where it is defined in GHC.Prim?

0 投票
1 回答
4627 浏览

haskell - ConstraintKinds 解释了一个超级简单的例子

什么是约束种类

为什么有人会使用它(在实践中)?

到底有什么好处呢?

能否举一个简单的代码示例来说明前两个问题的答案?

例如,为什么在代码中使用它?

0 投票
1 回答
198 浏览

haskell - 在 Haskell 中接收作为具有约束存在的参数函数

我一直在玩一些 GHC 扩展来定义一个可以执行以下操作的函数:

myFunc的签名应该是完全多态的show,这样它才能接受ab满足不同的类型Show

这是我对 GHC 扩展的尝试RankNTypes, ConstraintKinds, KindSignatures:

我的主要目的是了解这些扩展是如何工作的;但在我看来,似乎我是在告诉 GHC 有k一些满足的约束,a还有b一个函数(forall c. k c => c -> d)可以采用任何c满足的类型k并返回一个特定的d,现在,在这些条件下,我想应用该函数toabto 获得一个元组(d,d)

以下是 GHC 的抱怨方式:

我错过了什么?

0 投票
1 回答
86 浏览

haskell - 约束约束

我可以写以下内容:

一切都很好。据推测,GHC 可以从中得到Integral一切Num都很好。

我可能有点狡猾,但我仍然很好:

所以可以说我想概括一下,就像这样:

现在显然这会吐出假人,因为 GHC 不能派生c2c1,因为c2不受约束。

我需要在类型签名中添加什么g才能说“您可以c2c1”派生?