I'm slowly grokking Haskell and I like the genius (or madness?) of having the type system do a lot to verify that the program is correct.
I just started reading about liquid types and I'm loving the idea : https://news.ycombinator.com/item?id=37349276