# There are actually three exponentiation operators: (^), (^^) and (**). # ^ is non-negative integral exponentiation, # ^^ is integer exponentiation, and ** is floating-point exponentiation (^) :: (Num a, Integral b) => a -> b -> a (^^) :: (Fractional a, Integral b) => a -> b -> a (**) :: Floating a => a -> a -> a