imagine thinking that functional programming is just about avoiding side effects and that's it.