问题标签 [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.
haskell - Haskell Constraint Kinds - 默认实现的默认约束
标题:我想为通过约束参数化的类方法提供默认实现,该方法使用该约束的默认实例。
考虑以下:
这无法编译并出现以下错误:
从我的角度来看,它应该使用默认约束Show
,这将允许它编译。是否有任何原因这不起作用,或者任何人都可以提出一个好的方法来实现这一点?
haskell - 证明约束适用于产品的组件,因为它适用于产品
我有一个类C
,其中包含一种类型和元组的实例。
使用普通Dict
GADT 捕获约束
是否可以从C a
证明C (a, b)
?
我怀疑直接的答案是“不”,因为fstDict Dict = Dict
这还不够,而且几乎没有其他可能性。有什么办法可以改变C
产品组件的约束从对产品的约束中恢复?
我可能是错误地试图完成与最密切相关的问题相同的事情,但是我有幸Dict
从该类别的一端或两端要求一个。
haskell - 带有 DataKinds 的 HList,种类不可推广
我有这个代码片段,它使用了大量的 GHC 扩展:
GHC 抱怨说:
为什么我不能晋升HList
为一种?我使用 GHC7.8.2
和7.11
.
当然,使用内置的'[]
作品就好了:
我想使用我自己的HList
而不是'[]
因为实际HList
支持附加并且看起来像这样:
编辑:主要目标是让 GHC 推断
这样我就可以写了
我曾希望为附加类型级别列表添加显式表示可以帮助我实现这一目标。还有其他方法可以说服 GHC 吗?
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
允许这样做可能只是一个错误吗?
haskell - 什么是实物签名约束
如果我检查我kind
得到Maybe
这个:
Monad
现在,如果我检查我得到的那种:
那里有什么Constraint
以及为什么需要它?为什么不只是这个* -> *
?
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
?
haskell - 在 Haskell 中接收作为具有约束存在的参数函数
我一直在玩一些 GHC 扩展来定义一个可以执行以下操作的函数:
myFunc
的签名应该是完全多态的show
,这样它才能接受a
和b
满足不同的类型Show
。
这是我对 GHC 扩展的尝试RankNTypes
, ConstraintKinds
, KindSignatures
:
我的主要目的是了解这些扩展是如何工作的;但在我看来,似乎我是在告诉 GHC 有k
一些满足的约束,a
还有b
一个函数(forall c. k c => c -> d)
可以采用任何c
满足的类型k
并返回一个特定的d
,现在,在这些条件下,我想应用该函数toa
和b
to 获得一个元组(d,d)
以下是 GHC 的抱怨方式:
我错过了什么?
haskell - 约束约束
我可以写以下内容:
一切都很好。据推测,GHC 可以从中得到Integral
一切Num
都很好。
我可能有点狡猾,但我仍然很好:
所以可以说我想概括一下,就像这样:
现在显然这会吐出假人,因为 GHC 不能派生c2
自c1
,因为c2
不受约束。
我需要在类型签名中添加什么g
才能说“您可以c2
从c1
”派生?