I built a compiler and interpreter for a statically typed but fully inferred functional programming language in OCaml a while ago:
https://github.com/coetaur0/nox
The project is fairly simple, but there are non-trivial parts such as the type-system's implementation that might be worth looking at.