In this section we use the Functional Developer browser to help confirm the cause of the unhandled Dylan exception.
reversi-board-write-data.
We can now see the values of the local variables in this frame. The arguments are listed first: board and stream, followed by the squares sequence and iteration variable square.

Figure 2.6 Local variables in the reversi-board-write-data call frame.
The notation
board = {<reversi-board>}
means that board is an instance of <reversi-board>--an actual instance in the paused application. The curly braces mean that this is an instance of the class rather than the class definition itself.
We can look at this <reversi-board> instance in the browser, which allows us to examine the contents and properties of all kinds of things we come across in Functional Developer.
board item.

Figure 2.7 Browsing an instance of <reversi-board>.
The browser shows us in its Object field that we are browsing an instance of <reversi-board>. Like the debugger, the browser uses the curly braces notation to depict an instance of a class as opposed to its definition.
The browser presents information in property pages. In the page selected by default, we see the names of the slots in the instance and the values they had when the exception occurred. The property pages that the browser shows depend on what it is browsing; the set of pages for a class definition is quite different from that for a method definition, for example.
However, the browser always provides a General page. The General page gives an overview of the currently browsed object.
The fields on the General page for our <reversi-board> value tell us that it is an instance of type <reversi-board> and that it has two slots. The third field, Source, is labeled "n/a" for "not applicable". The Source field shows a source file name for anything the compiler saw during compilation, such as a definition. We are browsing an instance, not a compiler record, so it is not relevant to associate the instance with a source location. For more on the browser's distinction between run-time and compile-time objects, see "Browsing a project in source and run-time contexts" on page 82.
If we double-click on items on the Contents page, the browser moves on to browsing them.
reversi-board-squares item.
Figure 2.8 Browsing the elements of a collection.
Now we can see the elements of the reversi-board-squares collection.
) button to return to browsing board, the <reversi-board> instance.
Going back to the bug we are tracking down, two more useful pieces of information have emerged from seeing the <reversi-board> instance in the browser.
First, we can tell from the Contents page, which shows the slot values in the instance, that the call to reversi-board-squares in reversi-board-write-data, below, is clearly just a call to the default accessor on the <reversi-board> slot of the same name.
define method reversi-board-write-data
(board :: <reversi-board>, stream :: <file-stream>)
=> ()
let squares = reversi-board-squares(board);
for (square from 0 below size(squares))
reversi-square-write-data(squares[square], stream);
end for;
end method reversi-board-write-data;
Second, we can see that the reversi-board-squares slot holds a sequence, and that the sequence does not have an <integer> element type.
So we still do not know where the integer that caused the exception came from. However, we have yet to check what goes on in reversi-square-write-data; perhaps that method is converting the elements in the reversi-board-squares sequence into integers?