クラス制約が暗示されるように、データカインドのすべてのメンバーが型クラスを満たすように指定することは可能ですか? 例えば
data AB = A | B
class Foo (a :: AB) where get :: proxy a -> String
instance Foo A where get _ = "A"
instance Foo B where get _ = "B"
-- note lack of constraint here
get' :: proxy (a :: AB) -> String
get' = get
基本的a
に は であるAB
ため、 for のインスタンスがあると確信してFoo
います。ありそうにないと思いますが、どこでFoo
辞書を入手するのでしょうか? -- しかし、私は私の日にいくつかの魔法を見てきました.