Haskell中未解决的重载错误

nin*_*alt 4 haskell overloading

getNext a = if even a then a/2 else (3*a)+1 
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这行代码返回一个未解决的重载错误.

Main> getNext 13
ERROR - Unresolved overloading
*** Type       : (Fractional a, Integral a) => a
Run Code Online (Sandbox Code Playgroud)

我做错了什么或我错过了什么?我很久没有使用过Haskell所以我可能忘记了一些事情.

psm*_*ars 7

你可能想要

a `div` 2
Run Code Online (Sandbox Code Playgroud)

而不是

a/2
Run Code Online (Sandbox Code Playgroud)

发生错误是因为even a暗示a是一个整数,但是使用非整数除法运算符/则另有说明.