問題タブ [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 投票する
2 に答える
139 参照

haskell - Constraint tuple の型付け可能なインスタンス

0 投票する
2 に答える
111 参照

haskell - 製品に制約が成り立つことから、製品の構成要素に制約が成り立つことを証明する

C1 つの型とタプルのインスタンスを持つクラスがあります。

制約をキャプチャするための通常のDictGADT の使用

C aから証明できC (a, b)ますか?

fstDict Dict = Dict十分ではなく、他の可能性はほとんどないため、すぐに答えは「いいえ」だと思います。C製品の構成要素の拘束を製品の拘束から回復できるように変更する方法はありますか?

私はおそらく間違って、最も密接に関連する質問とDict同じことを達成しようとしていますが、カテゴリの一方または両方の端からを要求する余裕があります。

0 投票する
1 に答える
296 参照

haskell - HList と DataKinds、kind 昇格不可

大量の GHC 拡張機能を使用するこのコード スニペットがあります。

GHC は次のように訴えています。

HList種類を昇格できないのはなぜですか? GHC7.8.2とを使用しても同じエラーが発生します7.11

もちろん、ビルトインを使用しても'[]問題なく動作します。

実際には追加がサポートされており、次のようになっているため、HList代わりに自分のものを使用したいと思います。'[]HList

EDIT:主な目標は、GHCに推論させることです

書けるように

型レベルのリストを追加するための明示的な表現を追加することが、これを達成するのに役立つことを願っていました。GHCに上記のことを納得させる別の方法はありますか?

0 投票する
2 に答える
326 参照

haskell - 現物署名の制約とは

を検査すると、次kindMaybeようになります。

さて、Monad私がこれを得る種類を調べると:

そこには何がConstraintあり、なぜそれが必要なのですか? なぜこれだけではないの* -> *ですか?

0 投票する
1 に答える
755 参照

haskell - 制約の種類はどこで定義されていますか?

私は GHC の内部に精通していませんが、ConstraintKinds についていくつか質問があります。

そこから言ってGHC.Extsいる

Constraint一種の一種であるため、誤解を招く可能性がありますBOX。これは最初の質問につながります: 種類をインポートおよびエクスポートできますか? それはどのように機能しますか?

私が完全にオフになっている場合は、この次の部分で私を修正してください. さまざまなインポートを試し、ハックのソースをちらりと見てみると、私の推測では、GHC.Extsインポート元ConstraintGHC.Baseであり、次に、インポート元はGHC.Primです。しかし、それが定義されている場所がわかりませんGHC.Primか?

0 投票する
1 に答える
4627 参照

haskell - 非常に単純な例で説明された ConstraintKinds

Constraint kindとは?

なぜ誰かが(実際に)それを使用するのですか?

それは何のために良いですか?

前の 2 つの質問に対する答えを示す簡単なコード例を教えてください。

たとえば、なぜこのコードで使用されているのですか?

0 投票する
1 に答える
198 参照

haskell - Haskell で制約付きの存在を引数関数として受け取る

以下を実行できる関数を定義するために、いくつかの GHC 拡張機能で遊んでいます。

myFuncは、 の署名で完全にポリモーフィックである必要がありshowます。abShow

GHC拡張機能RankNTypes, ConstraintKinds,を使った私の試みは次のKindSignaturesとおりです:

私の主な目的は、これらの拡張機能がどのように機能するかを理解することです。kしかし、私の目には、 someaとを満たす制約があり、満たす任意の型を取り、特定の を返すことができるb関数もあるとGHCに伝えているように見えます。今、これらの条件下で、関数を適用したいタプルを取得する(forall c. k c => c -> d)ckdab(d,d)

GHC が不平を言う方法は次のとおりです。

私は何が欠けていますか?