# Type --- ## Object Definitions ```c typedef enum : uint8_t { // ... } kpl_type_template; typedef enum : uint8_t { CONST = 1 << 0, EMPTY = 1 << 1, REF = 1 << 2, SHARED = 1 << 3, RETURN = 1 << 4 } kpl_type_qualifiers; typedef union { // 64 Bytes Max } kpl_type_body; typedef struct _kpl_type { kpl_type_template template; uint8_t qualifiers; uint16_t modifiers; union { struct { uint16_t length, line; uint32_t position, module_id; } token; struct { int32_t id, tree_weight; } var; } meta; _Atomic ssize_t ref_count; struct _kpl_type *prev, *next; kpl_type_body body; } kpl_type; ```