I understand your points, and it is great that you did not give up. However, as a small feedback:
- I think that there are more and more examples for beginners, I find more difficult to find resources of the intermediate level. There is a lot of work now in the ocaml.org webpage for beginners. Yes, several sections of the “official manual” are not for beginners, but this more technical documentation is also needed.
- (About dune) My general advice is try to understand first the: ocaml, ocamlopt, ocamlfind etc before going to dune… (actually it is explained before dune)
- At least in Linux, setting the environment is fine. Happy to discuss about specific problems.
- There are resources with examples of Real World Ocaml book in “plain” version of the language (in github) and a lot of examples and exercises derived from them (also in github). Anyway, I understand that several “standard” libraries can be confusion for beginners. I decided to learn first using only the “official” standard library that is working fine in most of the cases for a beginner.
- Your point 5 is an intermediate level issue but happy to discuss about specific cases. To do a proper diagnostic of the problem with types coming from other packages it is good to give examples so we can understand (and improve) what you mean. The ctypes issue (I had/have similar issues) my advice is to try to ask here in OCaml Discuss specific questions with code snippets so others can solve concrete difficulties (for example this).