さまざまな Haskell チュートリアルを読みながら書いている最初のプログラムで、「種類の不一致」エラーが表示されます
import qualified Data.Vector as V
class SupervisedLearner l where
learn :: l (Input n) -> Output n
data Input n = Supervised (V.Vector n ,V.Vector n) | Unsupervised (V.Vector n)
data Output n = Regression n | KClass (V.Vector n) | Bernoulli (n, n)
newtype Perceptron = Perceptron (V.Vector Float)
instance SupervisedLearner Perceptron where
learn = undefined
私を混乱させているのは、エラーの型シグネチャに従おうとするときです。
Kind mis-match
The first argument of `SupervisedLearner' should have kind `*
-> *',
but `Perceptron' has kind `*'
In the instance declaration for `SupervisedLearner Perceptron'
私はそれを修正し始めるためにどこを見ればよいのか理解できないようです. 私の質問は 2 つあります。エラーはどこにあるのか、そして一般的な意味で、私は Haskell 型クラス システムを正しく使用していますか?