In this chapter you will learn
- how to use values to represent side-effectful programs
- how to use data from unsafe sources
- how to safely store data outside your program
- how to indicate your code does have side effects
- how to separate pure and impure code
“… we have to keep it crisp, disentangled, and simple if we refuse to be crushed by the complexities of our own making …”
—Edsger Dijkstra, “The Next Forty Years”
In this chapter we’ll finally address the elephant in the room.