Having read through the documentation, it doesn’t seem very different from OCaml. Are there specific things you know of that it’s getting right that OCaml gets wrong? Scanning through the documentation that targets SML/NJ developers, the changes mostly seem to revolve around naming conventions and a few keywords (e.g., generic instead of functor, mandatory syntactic differentiation between type constructors, types, and variables, different module scoping rules, and some other things). In many cases, while they’re improvements (e.g. .mli to .api), I’m inferring there are more interesting differences. I’m just not clear what they are.

the elevator pitch is “SML/NJ with a posix face” - it’s trying to bring SML on par with C as a “native” language for developing posix userland tools and applications in. to that end, there are several syntactic changes to make the language more familiar to C programmers, a scripting interface that includes eval, backticks and a shebang line, a lot of work put into “production” as opposed to “language research” issues, well-engineered interfaces to lower-level C libraries, and ultimately the mythryx project:

A wider goal is to foster the development of a complete mostly-functional software ecology to eventually replace the current C-based open source software ecology, which is starting to smell distinctly “past pull date”.

from a pure language point of view, i think the most interesting bit is the introduction of “eval” - it is an attempt to expose the incremental design of the SML compiler to program code, though as he points out it’s currently limited to a few common cases [http://mythryl.org/my-Mythryl_eval_Operators-2.html].

from a user point of view, the mythryx project is pretty exciting, and is what attracted me to the language in the first place, though i ended up never actually using it for various reasons (mainly i decided to concentrate on improving my ocaml instead, also mythryl didn’t have a lot of cross-platform support, and there wasn’t much of a community behind it). the mirage project is doing some of that for ocaml now. another thing i really like is his philosophy of polished rather than bind-and-forget C-based libraries - see the overview to the gtk bindings, for example: http://mythryl.org/my-Overview-11.html