class Numeric
def pow(m)
raise TypeError, "exponent must be an integer: #{m}" unless m.is_a? Integer
puts "pow!!"
Array.new(m, self).reduce(1, :*)
end
p 5.pow(3)
p 5.5.pow(3)
p 5.pow(3.1)