   @moduledoc """
   Some integer math operations missing from Erlang, and Elixir.
   Included so far: ipow (integer power)
+  """
 
-  NOTE ON POSSIBLE FUTURE REFACTOR using :crypto.mod_pow/3 :
-  something like,
-  nearly_infinite_int_in_a_finite_Erlang_world = :erlang.trunc(1.79e308)
-  << x :: integer-size(32)-big, rest :: binary >> = :crypto.mod_pow(base,exponent,nearly_infinite_int_in_a_finite_Erlang_world)
-  IO.puts x
-  """
+  @nearly_infinite_int_in_a_finite_Erlang_world :erlang.trunc(1.79e308)
+  @maximally_accurate_native_result :erlang.trunc(1.0e307)
 
   @doc """
   Integer power function

    228886641

  """
  @spec ipow(integer, non_neg_integer) :: integer
  def ipow(base, exp) when is_integer(base) and is_integer(exp) and exp > -1,
    do: _ipow(1, base, exp)

  # optimization for base 2
  defp _ipow(result, 2, exp),


  @spec ipow_10(non_neg_integer) :: integer
  def ipow_10(exp) when is_integer(exp) and exp > -1,
    do: ipow(10, exp)

end

