let pre = function
 S (n) -> n |
 _ -> failwith ("pre : requires a non-zero natural number as its argument")