* functional
* strongly, statically typed
* garbage-collected
OCaml can compile to a native binary, or to JS via ReScript (formerly BuckleScript).
It can also compile to JS via js_of_ocaml!