# Namespace --- ## Object Definitions ```c typedef struct _kpl_export { POOL_HEADER(_kpl_export); _Atomic int32_t ref_count; kpl_buffer *name; kpl_class *class; } kpl_export; typedef struct _kpl_native_namespace { POOL_HEADER(_kpl_native_namespace); kpl_buffer *name; kpl_export *exports; } kpl_native_namespace; typedef struct _kpl_file_namespace { POOL_HEADER(_kpl_file_namespace); __Atomic int16_t children; uint16_t flags; kpl_queue *parents; kpl_buffer *file_name, *file_string; kpl_export *exports; // TODO AST kpl_task *task; } kpl_file_namespace; typedef struct _kpl_string_namespace { _Atomic int16_t children; kpl_buffer *string; // TODO AST kpl_task *task; } kpl_string_namespace; ``` # Registering ## Native ## File ### Main ### ``import` ## String/REPL # Updating ## File ### ``export` # Using ## Native ### ``use` ## File ### ``import`