Wójtowicz's central takeaway: the only thing functional programmers actually do is identify three things in their own systems — data (information at rest), calculations (output depends only on input) and actions (depends on when or how many times it runs). Everything else is sugar. You don't need a specific language to do this. Once you identify them, composition rules drive cleaner design: push actions to the edges, keep calculations and data in the core. Classification is contextual — a cached-with-fallback function that does I/O can be a calculation in your system's context, and a CPU-expensive pure function can be an action because you care when it runs.