Errata for First-Class State Change in Plaid

  • 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 include 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.