Rekall objects themselves are structured like classes in an object-oriented language; for instance, as mentioned above, a form is a special type of block. The complete structure is shown below; hence KBItem, KBButton and KBLabel are special cases of KBObject. Those marked with an asterisk never exist in their own right, but only as part of some more specialised object (in object-oriented terms, they are abstract base classes).
The names are all prefixed by KB for historical reasons.
KBNode*
KBObject*
KBItem*
KBBlock*
KBFormBlock
KBForm
KBFormSubBlock
KBReportBlock
KBReport
KBReportSubBlock
KBField
KBChoice
KBCheck
KBLink
KBPixmap
KBMemo
KBRowMark
KBHidden
KBButton
KBLabel
KBFramer*
KBHeader
KBFooter
KBContainer
KBTabber
KBTabberPage