Concepts, Techniques, and Models of Computer Programming
concurrency, message-passing concurrency, explicit state,