To create a session, use either
Session.make function creates a session that handles all messages in the background, but only one message at a time. This ensures absolute consistency on the state of the session, but may not be appropriate for all applications.
In contrast, the
Session.NonBlocking.make function creates a session that can handle any number of messages simultaneously. This ensures maximal responsiveness, but the message handler cannot be certain that it is holding the latest value of the state. Let's have a look at how