gksato
よかった。しばらく勉強を進めると、代数的データ型/algebraic data type/
data というのに出会うと思うので、そうしたらもっと良く理解できると思います。data というのに出会うと思うので、そうしたらもっと良く理解できると思います。data List a = []
| (:) a (List a): はただのコンストラクタdata MyList a = Nil
| Cons a (MyList a)instance の行の後の v などの定義は慣習上インデントしたほうが読みやすいです。 {-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE UndecidableInstances #-}
--------------------
class C a where
f :: a -> a
f x = x
instance C Int
v = f (3 :: Int)
--------------------
class C' a where
f' :: a -> a
f' x = x
instance Num a => C' a
v' = f' 3v や v' はメソッドだと思ってました。v' :: Num p => p v' = f' 3
v' に型注釈を入れる方法が確実でおすすめです。NoMonomophismRestriction という言語拡張を有効にする、というてもありますが。: とは何のことですか。