I don't have time to evaluate and respond to all your points, but your first entry under "frightening discoveries" really jumped out at me. On line 499: try closed_type ty with Non_closed (ty0, real) -> The name "ty0" is a pattern capture variable, which the pattern matching construct binds to the first argument of the caught exn value with constructor Non_closed. It doesn't need a prior declaration... you are declaring it right there. Surely you were simply mistaken? I find it unbelievable that someone could write OCaml for years, even hacking on the compiler, without understanding basic pattern matching. On Thu, Jan 16, 2014 at 3:00 PM, Jürgen Pfitzenmaier < pfitzen@pfitzenmaier.de> wrote: > Dear Ocaml users, > I found some serious errors in the compiler e.g. in line 28 of typing/ > includecore.ml > and line 499 of typing/ctype.ml of version 3.12.1. > > A longer list of errors with explanations and possible fixes will be > under > www.pfitzenmaier.de/ocaml-considered-dangerous.html > > regards, > Jürgen > >