There is the AST defined in /parsing/parsetree.mli, which you have undoubtedly discovered, and if you look at it carefully and search for the occurences of different constructors in /parsing/parser.mly, you should be able to figure where and how they are used. Furthermore, you should try compiling sample programs with "ocamlc -dparsetree" which will print the AST of the program. Unfortunately, I am busy in these months, but you can send me some questions and I can try to answer them (may take long time), as I have spent quite some time inspecting the OCaml sources. - Tom