I used practical examples with real applications, so the examples determined what Ada features were demonstrated and their order of appearance. This approach gives the most exposure to the most commonly used Ada features, and less emphasis on the less important ones. The only two Ada features that didn't get a fair shake from this approach were tasking and access types. There are so many things that need to be considered when using tasking, I might be able to devote almost an entire book to it. I wanted to avoid any discussion of tasking because I didn't want to get started on a topic I didn't have space to adequately explain.
Access types are most useful for solving problems in very specialized areas.
My AI example is an excellent showcase of access types, but it requires too much technical AI background to fit in this book, and it isn't quite ready for publication yet. That's why you won't find any examples of access types in this book. All the figures and listings are at the back of the book for easy reference. Despite their location, they are meant to be read right along with the text. Package specifications include comments that tell what the routines do, and how to use them.