While immutable data is a key part of purely functional programming languages, coming from a purely variable background can make it initially seem extremely constraining. We’ll explore how, on the contrary, it can bring an amount of freedom and flexibility to how you structure your application, reducing an entire class of problems that would otherwise tie your hands and limit your options.