DEFINE_OBJECT_KIND(datatype,         DataType,       1)
DEFINE_OBJECT_KIND(prim_type,        PrimType,       2)
DEFINE_OBJECT_KIND(pointer_type,     PointerType,    3)
DEFINE_OBJECT_KIND(value_type,       ValueType,      4)
DEFINE_OBJECT_KIND(type,             Type,           5)
DEFINE_OBJECT_KIND(any_type,         AnyType,        6)
DEFINE_OBJECT_KIND(invalid_type,     InvalidType,    7)
DEFINE_OBJECT_KIND(tensor_type,      TensorType,     8)
DEFINE_OBJECT_KIND(tuple_type,       TupleType,      9)
DEFINE_OBJECT_KIND(callable_type,    CallableType,   10)
DEFINE_OBJECT_KIND(buffer,           Buffer,         11)
DEFINE_OBJECT_KIND(host_buffer,      HostBuffer,     12)
DEFINE_OBJECT_KIND(device_buffer,    DeviceBuffer,   13)
DEFINE_OBJECT_KIND(remote_buffer,    RemoteBuffer,   14)
DEFINE_OBJECT_KIND(value,            Value,          15)
DEFINE_OBJECT_KIND(tensor,			 Tensor,         16)
DEFINE_OBJECT_KIND(tuple,            Tuple,          17)
