Chapter 4 is about declarative concurrency. This takes what we’ve learned about declarative programming and applies it to a concurrent execution model. A challenge of concurrent programming is nondeterminism. A source of many painful, and in some cases fatal, bugs in software. A declarative concurrent model means that any nondeterminism is not visible to the programmer. There are two reasons: Dataflow variables can be bound only once. Any operation that needs the value of a variable has to ...| pid1