-- typically for integers (^) :: (Num a, Integral b) => a -> b -> a -- typically for rationals (^^) :: (Fractional a, Integral b) => a -> b -> a -- typically for floating-point numbers (**) :: Floating a => a -> a -> a
-- typically for integers (^) :: (Num a, Integral b) => a -> b -> a -- typically for rationals (^^) :: (Fractional a, Integral b) => a -> b -> a -- typically for floating-point numbers (**) :: Floating a => a -> a -> a