Haskell: Использовать -XF FlexibleContexts, чтобы разрешить это?

Мой код выглядит следующим образом:

calcstep ::Integral a => a -> a
calcstep  n = calcstep2 n 0

calcstep2 :: Integral (Integral a, Integral b) => a -> b -> a
calcstep2 1 k = k
calcstep2 n k | odd n = calcstep2 (n/2) (k+1)
              | otherwise = calcstep2 (n*3+1) (k+1)

Ошибка заключается в следующем:

Не тип-переменный аргумент

в ограничении: Интеграл (Интеграл а, Интеграл б)

(Используйте -XF FlexibleContexts, чтобы разрешить это)

В сигнатуре типа для `calcstep2 ': calcstep2 :: Integral (Интеграл a, Интеграл b) => а -> б -> а

Сбой, загруженные модули: нет.

Что это значит? как я могу это исправить?

Ответы на вопрос(2)

Ваш ответ на вопрос