Incidentally, the execution model and abstract machine for OCaml (more accurately Caml Light) is based on Xavier Leroy's paper "The ZINC experiment: an economical implementation of the ML language" [1] - an all time CS classic. Reading that paper and the surprisingly approachable source code for OCaml's interpreter [2] is a great way to demystify functional compilers.
[1] https://caml.inria.fr/pub/papers/xleroy-zinc.pdf
[2] https://github.com/ocaml/ocaml/blob/trunk/runtime/interp.c