@dabeaz Functions as first class objects, sum types and traits were the three really big ones for me.

Really expanded my mind by enabling much more elegant, better fitting abstractions.