let subtract =
let rec f = function
m, n -> if is_zero (n)
then m
else pre (f (m, pre (n)))
in
function
m, n -> if greater_than (n, m)
then failwith ("subtract : the first argument must be >= to the second one")
else f (m, n)