問題タブ [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 に答える
143 参照

haskell - 制約を反転する型関数を作成できますか?

Show のような制約を受け取り、RHS をShow のインスタンスではない型に制約する型関数を返す型関数を作成することは可能ですか?

署名は次のようなものになります

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

haskell - この制約をどのように表現できますか?

Constraintkind の on 型を表現したいと思いk -> k -> Typeます。これは英語で次のように言えます。

forall sx x'yおよびy'whereCoercible x x'およびCoercible y y'Coercible (s x y) (s x' y')

または、より平易な英語で:

s2 つのパラメーターが強制可能な場合、常に強制可能な型。

後者はすでに Haskell に興味をそそられるほど近いように見えます。

ただし、これは機能しません。ghc はCoercible (s x y) (s x' y')型になりたいのですが、Constraint(ConstraintKindsでありQuantifiedConstraints、オンになっています)。

何が起こっているのか完全には理解できませんが、ghc は aConstraintの右側にいるのが好きではないことが分かり=>ますtypeConstraint種類で型エイリアスを作成でき、 でtypeエイリアスを作成できるので=>、問題ありません。

問題は何ですか?この制約をghcが受け入れる方法で表現するにはどうすればよいですか?