(* It is worth to observe that the previous algorithm works by recursion over the first
argument. This means that, for instance, (add O x) will reduce to x, as expected, but (add x O)
(* It is worth to observe that the previous algorithm works by recursion over the first
argument. This means that, for instance, (add O x) will reduce to x, as expected, but (add x O)