私はHaskellのに新しいですし、私はクラッセの使用方法を学習しようとしているはスロー:私はクラスを持って、
を「実際の型と予想される型 『F』と一致しませんでした」 :
class SomeClass f where
doSome :: Integer -> f
データタイプ:
data SomeData = D1 Integer
| D2 SomeData SomeData
と私はインスタンスを作成しようとしています:
instance SomeClass SomeData where
doSome x = D1 x
GHCiのは私にエラーを与えるが、:
Couldn't match expected type ‘f’ with actual type ‘SomeClass’
私は、この問題に関するいくつかの質問を見てきましたが、私は彼らが私のために動作させることができませんでした。
どうすればこの問題を解決できますか?
インデントは間違っている、と私は本当にあなたのメソッドは 'do'名付けられ疑います。実際のコードを提供できますか? –
@ Red Barton Tnx! - あなたは正しい、私のインデントは間違っていた(名前も、私はそれを反映するために私の質問を編集したが、それは重要な部分ではない)。それを修正した後、それはコンパイルされ、期待通りに実行されます(エラーコードは役に立たなかった) – barakcaf
@ Red Bartonこれは 'where'節の後に字下げを教えてくれるだろう。 – barakcaf