Я имею в виду, например,
f :: (Enum a) => a -> a --without this line, there would be an error
f = succ
Это потому, что succ
требует, чтобы его параметр был перечислимым (succ :: (Enum a) => a -> a
)
но для (+)
f = (+) --ok
Хотя объявление (+)
(+) :: (Num a) => a –> a –> a
.
Я имею в виду, почему мне не нужно объявлять f
как f :: (Num a) => a –> a –> a
?