Prelude> let x = 5::Int
Prelude> sqrt (fromIntegral x)
2.23606797749979
оба Int и Integer являются экземплярами Integral:
fromIntegral :: (Integral a, Num b) => a -> b принимает ваш Int (который является экземпляром Integral) и "делает" его Num.
sqrt :: (Floating a) => a -> a ожидает, что Floating и Floating наследуют от Fractional, который наследует от Num, поэтому вы можете безопасно перейти к sqrt результату fromIntegral