## HeaderDoc Class Hierarchy

    HeaderElement                              (Root Class--any header entity that's significant)
            |                                  (to HeaderDoc is a HeaderElement)
            |
            |
            |-----------APIOwner               (Object that owns declared API)
            |               |
            |               |-------Header     (Owner for header-wide API)
            |               |
            |               |-------CPPClass   (Owner for C++ class API)
            |               |
            |               |-------CClass     (Owner for C pseudoclass API)
            |               |
            |               |-------ObjCContainer
            |                           |
            |                           |
            |                           |-------ObjCClass     (Owner for Objective-C class API)
            |                           |
            |                           |-------ObjCCategory  (Owner for Objective-C category API)
            |                           |
            |                           |-------ObjCProtocol  (Owner for Objective-C protocol API)
            |
            |
            |-----------Method              (an Objective-C method)
            |
            |-----------Constant
            |
            |-----------Enum
            |
            |-----------Function            (a C function or a C++ member function)
            |
            |-----------MinorAPIElement     (parameter, members of structs)
            |
            |-----------PDefine
            |
            |-----------Struct
            |                |
            |                |-------Var    (subclass of Struct so that it can contain fields)
            |
            |-----------Typedef

    DocReference      (Another root class. Used by gatherHeaderDoc to store information about
                       documentation framesets within an input folder. The script uses this
                       information to construct a top-level table of contents with links to each
                       frameset.)

headerDoc2HTML also uses the non object-oriented module, `Utilities.pm`.