For me it’s all about the quality of the type system (and ML languages do very well here):
- Type soundness (there seems little point to a type system without it).
- Hindley-Milner type inference
- ADT’s, / Variants together with pattern matching for better data modelling
That’s the key language features, for tooling etc… it’s
- Compiler speed
- True js alternative, (eg… use of js ecosystem)
Things I’m not so keen on.
- Higher level module system - there are likely better alternatives for the features it provides.
- PPX’s - better alternative’s