an implementation of symbolic differentiation using Ocaml