diff --git a/src/libraries/stdlib/integer.ml b/src/libraries/stdlib/integer.ml
index 00fe1fc795db028fb338b6c9092da825236eccc3..b0fef64641fe0da44eb43ddaf914eee0d06e9fa0 100644
--- a/src/libraries/stdlib/integer.ml
+++ b/src/libraries/stdlib/integer.ml
@@ -27,12 +27,16 @@ let equal = Z.equal
 let compare = Z.compare
 
 let two_power_of_int k =
+  Z.shift_left Z.one k
+
+let two_power n =
+  let k = Z.to_int n in
   if k > 1024 then
     raise Z.Overflow
   else
-    Z.shift_left Z.one k
+    two_power_of_int k
 
-let two_power n = two_power_of_int (Z.to_int n)
+let power_int_positive_int = Big_int_Z.power_int_positive_int
 
 let popcount = Z.popcount
 
@@ -279,5 +283,3 @@ let round_up_to_r ~min:m ~r ~modu =
 
 let round_down_to_r ~max:m ~r ~modu =
   add (round_down_to_zero (sub m r) modu) r
-
-let power_int_positive_int = Big_int_Z.power_int_positive_int
diff --git a/src/libraries/stdlib/integer.mli b/src/libraries/stdlib/integer.mli
index 3b9e69a8fd2b8859c975bb1002f90555d643304c..1e8202750a985b5318dcfb11f1cb0c12286c17c9 100644
--- a/src/libraries/stdlib/integer.mli
+++ b/src/libraries/stdlib/integer.mli
@@ -137,11 +137,11 @@ val round_down_to_r : max:t -> r:t -> modu:t -> t
     [n]<=[m] and [n] = [r] modulo [modu] *)
 
 val two_power : t -> t
-(** [two_power x] computes 2^x.
+(** Computes [2^n]
     @raise Z.Overflow for exponents greater than 1024 *)
 
 val two_power_of_int : int -> t
-(** Similar to [two_power x], but x is an OCaml int. *)
+(** Computes [2^n] *)
 
 val power_int_positive_int: int -> int -> t
 (** Exponentiation *)