You can get pretty far in Haskell (with various extensions) and Scala. But for Go/TypeScript/etc, forget about it.