I’d prefer a GC language with exhaustive matching on discriminated union types. Maybe “go + typescript type system + higher kinded types”. Swift is in the ballpark and would be a lot more appealing with the go tooling.

But fill in the blank with your preference :)

Ocaml? It garbage collected, primarily functional but with options for an imperative style when necessary. Of course its std isn't very good. I think Jane Street has done a lot improve things, but the whole ecosystem is still kind of a mess.

I just can’t with the OCaml header files. Like what the hell all the types are inferred but you’re gonna make me write a header file for each module???