# Interface --- General definitions used throughout the code ## Object Definitions ```c typedef union { bool b; uint8_t u8; uint16_t u16; uint32_t u32; uint64_t u64; int8_t i8; int16_t i16; int32_t i32; int64_t i64; float f32; double f64; void *ptr; } kpl_any; typedef size_t kpl_any_hash_fn(const kpl_any a); typedef ssize_t kpl_any_cmp_fn(const kpl_any a, const kpl_any b); typedef int32_t kpl_write(const kpl_ant a, FILE *file, int32_t idnt, uint32_t opts); typedef void kpl_any_free_fn(kpl_any a); typedef struct { // TODO } kpl_interface; typedef struct { kpl_any *any; kpl_interface *interflace; } kpl_class; typedef struct { any value, info; } kpl_result; typdef struct { uint16_t slab_index, array_index; } kpl_ptr; #define KPL_PTR_NULL (kpl_ptr) { .slab_index = UINT16_MAX, .array_index = UINT16_MAX } ```