And what is an example of an expressive type system? I am asking just out of curiosity.
Features I care about:
* Type classes: Haskell, Scala
* Module system: OCaml, Scala
* structural subtyping / row polymorphism: OCaml
* Higher-kinded types: Haskell, Scala
Other important features, but not related to the type system:
* Powerful runtime system (multicore support, green threads, ...): Haskel, Scala (kinda, with the TypeLevel libraries, but still not 1st class)
* pure functional programming focus: Haskell, Scala (kinda, with the TypeLevel libraries, but still not 1st class)
* compiling to JavaScript (so that you can use 1 language for both backend and frontend): Scala, OCaml
... maybe PureScript would tick the most boxes ¯\_(ツ)_/¯