Is there a reason you're pointing to a specific commit? The link below is to the current version.
Also note that it's easy to make quick edits in GitHub's web interface without having to clone the repo locally. It works well and we get a lot of quick fixes this way.
1 would like to recommend the lecture notes [1] used in CS3110 at Cornell to people who want to learn OCaml. They have been used and revised over the years and are of very high quality.
In the "suggested textbooks" section, #3 is Real World OCaml which has Jason Hickey as an author and is available for free online, and #4 is Jason Hickey's notes for a course, is marked "Draft. Do No Redistribute", and at first glance its table of contents looks similar to Real World OCaml.
Isn't the latter redundant and in violation of whatever?
There is no shared text at all between Real World OCaml and Jason Hickey's course notes. We wrote the RWO content from scratch due to the different style (O'Reilly vs academic) and set of libraries used.
I think "all of Ocaml compiles to JS " is a bit optimistic. AFAIK, code using Jane Street's Core stdlib doesn't work. But a lot of Ocaml code should be fine.
All of the core compiler library does compile to efficient JavaScript. For instance, see the IOCamlJS interactive notebooks that embed the entire compiler in the browser with a web UI. Just press the play button:
You can do a lot of traditional 'OO'-style things with functors and modules, though, so you don't need objects necessarily to get a lot of OO features.
OCaml is (somewhat unconventionally) object-oriented; it has classes, inheritance, what-have-you. The 'O' in the name stands for "objective". Perhaps you're thinking of SML?
seems to state otherwise. That said, I think the common advice is to not use most of that and to restrict yourself to just records as they are almost always the better choice.