.. _preface:

Preface
=======

This book is a bit unusual in the way it is structured.  This is
because it is expected that most readers will be reading an HTML
version of the book.  As a result, the book makes heavy use of
hyperlinking to allow users to explore the contents of the book as
best suits their needs.  For the most part, this linking should only
enhance eBook versions of the book, but it may not always translate
well into a print medium format.  But every attempt has been made to
provide a quality result in all supported formats.

One aspect of the book worth remarking on at this point is the fact
that there are a couple of different "flows" supported in the book.
Overall, the book attempts to present material in a logical order in
the progression of chapters shown in the table of contents.  This
means that the first few chapters focus on expressing different
types of mathematical behavior and deferring discussions about
building more structured models (e.g. packages, component models,
subsystems, *etc.*) until later.  However, when reading about a
particular example, the provided links will make it possible to
sidestep this normal flow of topics and simply continue with further
expansion on that particular example in subsequent chapters (which
introduce additional language features).  Hopefully, this approach
enhances the reading experience without disorienting the user.

Most chapters are organized into three parts.  The first part
introduces the topics to be discussed in the chapter.  Next,
an extensive set of examples are used to demonstrate the
language features relevant to the topics introduced in part one.
Note that each example typically introduces a new topic, so it is
best to review all the examples to provide the most complete coverage
of these topics.  Finally, most chapters include a review of the
topics and a summary of any details not found in the examples to
provide thorough coverage of the topics.
