Handles hide the internal details of the underlying C++ classes. Essentailly a handle is a pointer to an object, but this detail will be irrelevant to most users.
Corresponding to each of the classes in the Abstract C++ API, there is a derived type.
The derived types ArrayT, AttributableT, AttributeT, BLockT; ColumnT, DataSetT, LabelledT and TableT are used to declare handles of objects.
By having different derived types for each C++ class, the API becomes more robust and type-safe.