DEFINITION Cheating — Using functions that aren’t referentially transparent in functional code (such as FRP).
Can you cheat just a little? No, you can’t. It may be difficult to grasp this now, but we promise you’ll get a lot in return. Experience shows that cheating inevitably leads to introducing otherwise-avoidable bugs.
(понравилась эта цитата из книжки по FRP)