Instead of making my own top level comment I'll just add onto this one: functional programming in general and Elm in particular. A lot of languages and frameworks promise to make programming fun, Elm is the only one that's held up for more than a few weeks. Months later I'm still doing substantial side projects in it and get a rush just from opening up a new .elm file and starting a new set of types and pure functions.
Funny you should mention type classes-- that's one of the biggest things that Elm, the little brother to Haskell in many ways, doesn't support (and doesn't intend to, for reasons of limiting the footguns available to devs and also keeping to the high standard it sets for itself for error messages IIRC...)
Funny you should mention type classes-- that's one of the biggest things that Elm, the little brother to Haskell in many ways, doesn't support (and doesn't intend to, for reasons of limiting the footguns available to devs and also keeping to the high standard it sets for itself for error messages IIRC...)