let rec power f n = let compose f g x = f (g x) in if n < 0 then failwith "power" else if n = 0 then function x -> x else compose f (power f (n-1));;
open Poly let inj_Z7Z n = power (Int.plus Int.unit) n Int.zero;;
Calculer "(4 + 3) * 5" dans z/7Z.
let _4_5x3mod7 = let (!) = inj_Z7Z in Z7Z.mult (Z7Z.plus !4 !5) !3;; let _ = Z7Z.tostring _4_5x3mod7;;