Before starting the next few sections, here are a helpful things to know:
This is the backing of BuckleScript. BuckleScript is a fork of OCaml, specifically
v4.02.3 (upgrade impending!). This doc site assumes basic knowledge of OCaml; you can learn OCaml through Real World OCaml or, if you're learning Reason anyway, start with the Reason site.
This documentation site will mostly cover just the extra bits we've added to OCaml to enable good JS interoperability.
An alternative syntax for OCaml that's more familiar to JS programmers and reduces the learning overhead a bit. Reason works with OCaml, since apart from the syntax they share most other things. This also means Reason works with BuckleScript. The latter has some first-class support for some other utilities of Reason.
This is OCaml's official package manager. Since BuckleScript uses NPM and Yarn, you won't need OPAM as a beginner. We will mention it for advanced workflows.
External: in the context of BuckleScript, one of the primary ways to use a JS value.
Interop: short for "interoperability".
FFI: Foreign Function Interface. The general term for things like "external", "wrapper" and "interop". Basically means calling a value from the other language. Prefer the first two terms.