Caml programming guidelines