- Page 3, top of 2nd column under Listing 1, the sentence should read: "One cannot open an open file so the open file state does not inclue the `open` method.
- Page 5, last paragraph in column 1, first two sentences should read:
"The `Open` state contains several nested and-states. Therefore, `Open` is declared as a composition of the three nested dimensions using the `with` operator. This encoding captures the invariant that any object in the `Open` state is also in the `Direction`, `Status`, and `Action` states."
- Page 5, second sentence following the code box: the word "specializations" should be replaced by "substates".
Page 7, 3rd paragraph should read: "To initialize a `ReadStream` we need to specify the starting and-states like for `ResultSet`. The code to create a `ReadStream x` that is not at the end is `val x = new ReadStream @ ReadEnd with NotEnd;`. Here again, we use the `@` operator to begin the `ReadStream` in particular substates of the and-states nested in `ReadStream`.