Right fold superpowers!. On a related post,

A function is considered “pure”, if it is [referential transparent (RT)] for all RT arguments, meaning that the arguments passed into a function must be pure themselves. A side-effect, therefore, is anything that violates RT.