2016-11-27 3 views
2

あるクラスの関連する型同義語が他のクラスのインスタンスであることを要求することは可能ですか?例えば。次のコードのようなもので(コンパイルされません!):haskellに関連付けられた型同義語のtypeclassインスタンスを要求する

class Test a where 
    type Foo a 
    instance Show (Foo a) 

は、私が実際に頼ることができるだろうFoo aは関係なく、問題の特定のaShowことが可能であること。

明らかに、私はFoo aにしたい操作を確実にするためにクラスにメソッドを追加できますが、既存のクラスを再利用できるだけでいいですね。答えを見つけ

+1

あなたは 'クラスを表示(フーA)=>試験A型のFoo A'を書くことができますが、私はそれが可能だかどうかわかりません'class(forall a。Show(Foo a))=>どこの型のFoo a'をテストするかのようなものをエミュレートする。 – user3237465

答えて

1

、#haskell上lyxiaに感謝:

class (Show (Foo a)) => Test a where 
    type Foo a 
関連する問題