複数のクラス制約を設定するにはどうすればよいので、A
がEq
で、B
がNum
の場合、どちらかと言えます。
f :: Eq a => a -> b`
または
f :: Num b => a -> b
だから、どうすればEq a =>
およびNum b =>
同時に?
f :: Eq a => Num b => a -> b
、f :: Eq a -> Num b => a -> b
、およびf :: Eq a, Num b => a -> b
私が望んでいたことをしませんでした。
Eq
とNum
は型クラスと呼ばれるため、通常はクラス制約と呼ばれます。
これはどう?
f :: (Eq a, Num b) => a -> b
括弧は重要です。