let accumul_right = function
(op, neutral) -> (let rec f = function
lx -> if is_empty_list (lx)
then neutral
else op (head (lx), f (tail (lx)))
in
f)