My favorite feature is how currying is applied literally everywhere. You can take any function that accepts 2 args, pass in a single arg and return a new function that accepts one arg and produces the result. In Haskell, this is handled automatically. Once you wrap your head around using partially applied and fully saturated functions you can really start to see the power behind languages like Haskell
I’ve been learning Haskell, and now I won’t shut up about Haskell
Also the name of one of the best sci fi novels ever written, which has references to the phenomenon