Thanks for the response. I think it is harder not to fall into the temptation to make your object a data structure. On the other hand, as far as working with FP languages compared with OOP languages, I find FP languages are easier to reason and compose (automatic currying FTW!). Being functional and pure, baked into the language (or the compiler) helps a lot for a good type system like Haskell, and also sanity check, because I can’t trust myself. I’d say that working in OOP needs much more discipline on the programmers’ side.