An alternative to OCaml is Flix ( https://flix.dev/ ) which attempts to address some of the critiques in the post. For example: > Bad standard library A particular goal of Flix is to have a consistent standard library based on type classes. > Standard types are sometimes persistent, sometimes mutable. List, Map, and Set are persistent. Stack and Hashtbl are mutable. In Flix immutable types are named List, Set, Map, e…
algebraic data types
pattern matching
first-class functions
extensible records
parametric polymorphism
type classes
higher-kinded types
light-weight polymorphic effects
type aliases
Hindley-Milner type inference
CSP-style concurrency
buffered & unbuffered channels
first-class datalog constraints
polymorphic datalog predicates
constraints with lattice semantics
stratified negation
interoperability with Java
unboxed primitives
keyword-based syntax
redundancy checks
monadic let\* expressions
expressions holes
compilation to JVM bytecode
full tail call elimination
core standard library
parallel compiler architecture
human friendly errors
interactive mode
Visual Studio Code support
Nice!