Tough question! There are so many, but I think the most important ones would be:
Immutability
ADTs
Explicit Effects
There's a lot of talk about the first one in particular and libraries around it, but without language-level support you miss out on so many of the great features you get from guaranteed immutability. For example the ability to safely share data between different threads (or workers) and aggressive optimizations the GC can make by knowing that references from old objects can never point to newer ones.
The other two points have probably enough fan-articles written for them, but if not, they'd probably make for good follow-up questions. :)
Tough question! There are so many, but I think the most important ones would be:
There's a lot of talk about the first one in particular and libraries around it, but without language-level support you miss out on so many of the great features you get from guaranteed immutability. For example the ability to safely share data between different threads (or workers) and aggressive optimizations the GC can make by knowing that references from old objects can never point to newer ones.
The other two points have probably enough fan-articles written for them, but if not, they'd probably make for good follow-up questions. :)