\chapcontents {\tocstrut }{Copyright Notice}{9}
\chapcontents {1}{About Programming in GAP}{10}
\chapcontents {2}{Method Selection}{11}
\seccontents {2.1}{Operations and Methods} {11}
\seccontents {2.2}{Method Installation} {11}
\seccontents {2.3}{Applicable Methods and Method Selection} {12}
\seccontents {2.4}{Partial Methods} {13}
\seccontents {2.5}{Redispatching} {13}
\seccontents {2.6}{Immediate Methods} {13}
\seccontents {2.7}{Logical Implications} {14}
\seccontents {2.8}{Operations and Mathematical Terms} {14}
\chapcontents {3}{Creating New Objects}{16}
\seccontents {3.1}{Creating Categories} {16}
\seccontents {3.2}{Creating Representations} {17}
\seccontents {3.3}{Creating Attributes and Properties} {17}
\seccontents {3.4}{Creating Other Filters} {18}
\seccontents {3.5}{Creating Operations} {18}
\seccontents {3.6}{Creating Families} {18}
\seccontents {3.7}{Creating Types} {20}
\seccontents {3.8}{Creating Objects} {20}
\seccontents {3.9}{Component Objects} {21}
\seccontents {3.10}{Positional Objects} {22}
\seccontents {3.11}{Implementing New List Objects} {23}
\seccontents {3.12}{Example -- Constructing Enumerators} {24}
\seccontents {3.13}{Example -- Constructing Iterators} {26}
\seccontents {3.14}{Arithmetic Issues in the Implementation of New Kinds of Lists} {27}
\seccontents {3.15}{External Representation} {28}
\seccontents {3.16}{Mutability and Copying} {29}
\seccontents {3.17}{Global Variables in the Library} {31}
\seccontents {3.18}{Declaration and Implementation Part} {33}
\chapcontents {4}{Examples of Extending the System}{34}
\seccontents {4.1}{Addition of a Method} {34}
\seccontents {4.2}{Extending the Range of Definition of an Existing Operation} {35}
\seccontents {4.3}{Enforcing Property Tests} {36}
\seccontents {4.4}{Adding a new Operation} {36}
\seccontents {4.5}{Adding a new Attribute} {37}
\seccontents {4.6}{Adding a new Representation} {38}
\seccontents {4.7}{Components versus Attributes} {39}
\seccontents {4.8}{Adding new Concepts} {39}
\seccontents {4.9}{Example: M-groups} {40}
\seccontents {4.10}{Example: Groups with a word length} {41}
\seccontents {4.11}{Example: Groups with a decomposition as semidirect product} {41}
\seccontents {4.12}{Creating Own Arithmetic Objects} {41}
\chapcontents {5}{An Example -- Residue Class Rings}{44}
\seccontents {5.1}{A First Attempt to Implement Elements of Residue Class Rings} {44}
\seccontents {5.2}{Why Proceed in a Different Way?} {45}
\seccontents {5.3}{A Second Attempt to Implement Elements of Residue Class Rings} {46}
\seccontents {5.4}{Compatibility of Residue Class Rings with Prime Fields} {56}
\seccontents {5.5}{Further Improvements in Implementing Residue Class Rings} {61}
\chapcontents {6}{An Example -- Designing Arithmetic Operations}{63}
\seccontents {6.1}{New Arithmetic Operations vs. New Objects} {63}
\seccontents {6.2}{Designing new Multiplicative Objects} {64}
\chapcontents {}{Bibliography}{70}
\chapcontents {}{Index}{71}
