かけ算は、足し算の再帰的定義で表現できますが、
累乗は、かけ算の再帰的定義で、表現出来ます。
再帰による累乗の定義
pow::Int -> Int -> Int
pow m 0 = 1
pow m n = m * pow m (n - 1)
スーパー、シンプルですね。