この機能:
hola :: (Integral a) => a -> String
hola 1 = "OK"
hola _ = "asdf"
正常に動作します。しかし、これは:
hola :: (Num a) => a -> String
hola 1 = "OK"
hola _ = "asdf"
コンパイルできません: 「リテラル `1' から生じる (Eq a) を推測できませんでした」
私は本当にそれを取得しません。私はそれが言われているチュートリアルを読んでいます
「Integral も数値型クラスです。Num には、実数と整数を含むすべての数値が含まれます。Integral には、整数 (整数) のみが含まれます。この型クラスには、Int と Integer があります。」http://learnyouahaskell.com/types-and-typeclasses
Num を使用できないのはなぜですか?