This project aims to write while-language which implements eval function. By the way, I've used OCaml's GADT to do it, and I try some amazing stuffs of this feature